
/* DWARF original prototype: uchar * get_output_view(Output_file * this, off_t start, size_t size,
   Output_file * this) */

uchar * __thiscall
gold::Output_file::get_output_view(Output_file *this,off_t start,size_t size,Output_file *this_1)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  uchar *puVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  int iVar10;
  undefined4 *puVar11;
  int *piVar12;
  int *piVar13;
  undefined *puVar14;
  code *pcVar15;
  code *pcVar16;
  char cStack_cd;
  
  puVar14 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);
  piVar12 = (int *)&DAT_0000011a;
  pcVar15 = *(code **)(puVar14 + 0x3127ec);
  uVar9 = *(int *)(puVar14 + 0x312038) + 0x3a14;
  (*pcVar15)(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230);
  if (uVar9 < 0x40000000) {
    uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);
    puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);
    return puVar4;
  }
  pcVar15 = *(code **)(pcVar15 + 0x312848);
  (*pcVar15)();
  iVar5 = *piVar12;
  pcVar7 = *(char **)(uVar9 + 0x30);
  if (iVar5 < 4) {
    cVar2 = *pcVar7;
    piVar12[iVar5 + 1] = (int)pcVar7;
    *piVar12 = iVar5 + 1;
    if (cVar2 != '\0') {
      return (uchar *)(iVar5 + 1);
    }
    iVar5 = *(int *)(pcVar15 + 0x31276c);
    if (*(int *)(pcVar7 + 8) == 0) {
      *(uint *)(pcVar7 + 8) = uVar9;
      return (uchar *)0x0;
    }
  }
  else {
    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;
    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);
  }
  piVar12 = (int *)&DAT_0000007c;
  pcVar16 = *(code **)(pcVar15 + 0x31274c);
  iVar10 = *(int *)(pcVar15 + 0x311f98) + -0x7f8;
  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);
  iVar5 = *piVar12;
  pcVar7 = *(char **)(iVar10 + 0x38);
  if (iVar5 < 4) {
    cVar2 = *pcVar7;
    piVar12[iVar5 + 1] = (int)pcVar7;
    *piVar12 = iVar5 + 1;
    if (cVar2 != '\0') {
      return (uchar *)(iVar5 + 1);
    }
    iVar5 = *(int *)(pcVar16 + 0x3126d8);
    if (*(int *)(pcVar7 + 8) == 0) {
      *(int *)(pcVar7 + 8) = iVar10;
      return (uchar *)0x0;
    }
  }
  else {
    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;
    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);
  }
  piVar12 = (int *)&DAT_0000007c;
  pcVar15 = *(code **)(pcVar16 + 0x3126b8);
  iVar10 = *(int *)(pcVar16 + 0x311f04) + -0x7f8;
  (*pcVar15)(iVar10,0x7c,iVar5 + 0x42e4);
  iVar5 = *piVar12;
  pcVar7 = *(char **)(iVar10 + 0x30);
  if (iVar5 < 4) {
    cVar2 = *pcVar7;
    piVar12[iVar5 + 1] = (int)pcVar7;
    *piVar12 = iVar5 + 1;
    if (cVar2 != '\0') {
      return (uchar *)(iVar5 + 1);
    }
    iVar5 = *(int *)(pcVar15 + 0x312644);
    if (*(int *)(pcVar7 + 8) == 0) {
      *(int *)(pcVar7 + 8) = iVar10;
      return (uchar *)0x0;
    }
  }
  else {
    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;
    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);
  }
  piVar12 = (int *)&DAT_0000007c;
  pcVar16 = *(code **)(pcVar15 + 0x312624);
  iVar10 = *(int *)(pcVar15 + 0x311e70) + -0x7f8;
  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);
  cStack_cd = (char)pcVar16 + -0x60;
  iVar5 = *piVar12;
  pcVar7 = *(char **)(iVar10 + 0x2c);
  if (iVar5 < 4) {
    cVar2 = *pcVar7;
    iVar6 = iVar5 + 1;
    piVar12[iVar5 + 1] = (int)pcVar7;
    *piVar12 = iVar6;
    if (cVar2 != '\0') {
LAB_001af4e4:
      pcVar7 = *(char **)(iVar10 + 0x30);
      if (pcVar7 != (char *)0x0) {
        bVar1 = iVar6 == 4;
        iVar6 = iVar5 + 2;
        if (bVar1) goto LAB_001af570;
        cVar2 = *pcVar7;
        piVar12[iVar5 + 2] = (int)pcVar7;
        *piVar12 = iVar6;
        if (cVar2 == '\0') {
          iVar5 = *(int *)(pcVar16 + 0x3125b0);
          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;
          *(int *)(pcVar7 + 8) = iVar10;
        }
      }
      pcVar8 = *(char **)(iVar10 + 0x34);
      if (iVar6 != 4) {
        cVar2 = *pcVar8;
        piVar12[iVar6 + 1] = (int)pcVar8;
        *piVar12 = iVar6 + 1;
        if (cVar2 != '\0') {
          return (uchar *)(iVar6 + 1);
        }
        iVar5 = *(int *)(pcVar16 + 0x3125b0);
        pcVar7 = (char *)0x0;
        if (*(int *)(pcVar8 + 8) == 0) {
          *(int *)(pcVar8 + 8) = iVar10;
          return (uchar *)0x0;
        }
        goto LAB_001af590;
      }
      goto LAB_001af570;
    }
    if (*(int *)(pcVar7 + 8) == 0) {
      *(int *)(pcVar7 + 8) = iVar10;
      goto LAB_001af4e4;
    }
  }
  else {
LAB_001af570:
    (**(code **)(pcVar16 + 0x312590))
              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);
  }
  iVar5 = *(int *)(pcVar16 + 0x3125b0);
LAB_001af590:
  pcVar15 = *(code **)(pcVar16 + 0x312590);
  iVar5 = iVar5 + 0x42e4;
  puVar11 = (undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8);
  (*pcVar15)(puVar11,0x7c);
  uVar3 = *puVar11;
  iVar10 = (**(code **)(pcVar15 + 0x311e00))(0x18);
  *(undefined4 *)(iVar10 + 0xc) = 0;
  *(undefined4 *)(iVar10 + 8) = 0;
  *(char **)(iVar10 + 0x14) = pcVar7;
  pcVar16 = *(code **)(pcVar15 + 0x3126d8);
  *(int *)(iVar10 + 0x10) = iVar5;
  (*pcVar16)(iVar10,uVar3);
  piVar13 = *(int **)(pcVar15 + 0x312b34);
  piVar12 = *(int **)(pcVar15 + 0x312b38);
  puVar11[2] = puVar11[2] + 1;
  iVar6 = *piVar13;
  iVar10 = *piVar12;
  puVar11[7] = pcVar7;
  puVar4 = (uchar *)(iVar10 + 1);
  puVar11[6] = iVar5;
  puVar11[3] = *puVar11;
  *(char *)(puVar11 + 4) = cStack_cd;
  *piVar13 = iVar6 + 1;
  *piVar12 = (int)puVar4;
  return puVar4;
}



void FUN_001af210(void)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  char *pcVar7;
  uint uVar8;
  int iVar9;
  undefined4 *puVar10;
  int *piVar11;
  int *piVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  char cStack_cd;
  
  puVar13 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);
  piVar11 = (int *)&DAT_0000011a;
  pcVar14 = *(code **)(puVar13 + 0x3127ec);
  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;
  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);
  if (uVar8 < 0x40000000) {
    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);
    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);
    return;
  }
  pcVar14 = *(code **)(pcVar14 + 0x312848);
  (*pcVar14)();
  iVar4 = *piVar11;
  pcVar6 = *(char **)(uVar8 + 0x30);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar14 + 0x31276c);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(uint *)(pcVar6 + 8) = uVar8;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;
    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar15 = *(code **)(pcVar14 + 0x31274c);
  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;
  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x38);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar15 + 0x3126d8);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;
    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar14 = *(code **)(pcVar15 + 0x3126b8);
  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;
  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x30);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar14 + 0x312644);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;
    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar15 = *(code **)(pcVar14 + 0x312624);
  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;
  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);
  cStack_cd = (char)pcVar15 + -0x60;
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x2c);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    iVar5 = iVar4 + 1;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar5;
    if (cVar2 != '\0') {
LAB_001af4e4:
      pcVar6 = *(char **)(iVar9 + 0x30);
      if (pcVar6 != (char *)0x0) {
        bVar1 = iVar5 == 4;
        iVar5 = iVar4 + 2;
        if (bVar1) goto LAB_001af570;
        cVar2 = *pcVar6;
        piVar11[iVar4 + 2] = (int)pcVar6;
        *piVar11 = iVar5;
        if (cVar2 == '\0') {
          iVar4 = *(int *)(pcVar15 + 0x3125b0);
          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;
          *(int *)(pcVar6 + 8) = iVar9;
        }
      }
      pcVar7 = *(char **)(iVar9 + 0x34);
      if (iVar5 != 4) {
        cVar2 = *pcVar7;
        piVar11[iVar5 + 1] = (int)pcVar7;
        *piVar11 = iVar5 + 1;
        if (cVar2 != '\0') {
          return;
        }
        iVar4 = *(int *)(pcVar15 + 0x3125b0);
        pcVar6 = (char *)0x0;
        if (*(int *)(pcVar7 + 8) == 0) {
          *(int *)(pcVar7 + 8) = iVar9;
          return;
        }
        goto LAB_001af590;
      }
      goto LAB_001af570;
    }
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      goto LAB_001af4e4;
    }
  }
  else {
LAB_001af570:
    (**(code **)(pcVar15 + 0x312590))
              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);
  }
  iVar4 = *(int *)(pcVar15 + 0x3125b0);
LAB_001af590:
  pcVar14 = *(code **)(pcVar15 + 0x312590);
  iVar4 = iVar4 + 0x42e4;
  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);
  (*pcVar14)(puVar10,0x7c);
  uVar3 = *puVar10;
  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);
  *(undefined4 *)(iVar9 + 0xc) = 0;
  *(undefined4 *)(iVar9 + 8) = 0;
  *(char **)(iVar9 + 0x14) = pcVar6;
  pcVar15 = *(code **)(pcVar14 + 0x3126d8);
  *(int *)(iVar9 + 0x10) = iVar4;
  (*pcVar15)(iVar9,uVar3);
  piVar12 = *(int **)(pcVar14 + 0x312b34);
  piVar11 = *(int **)(pcVar14 + 0x312b38);
  puVar10[2] = puVar10[2] + 1;
  iVar5 = *piVar12;
  iVar9 = *piVar11;
  puVar10[7] = pcVar6;
  puVar10[6] = iVar4;
  puVar10[3] = *puVar10;
  *(char *)(puVar10 + 4) = cStack_cd;
  *piVar12 = iVar5 + 1;
  *piVar11 = iVar9 + 1;
  return;
}


lui gp,0x32
addiu gp,gp,-0x5fd0
addu gp,gp,t9
lw a2,-0x77f0(gp)
addiu sp,sp,-0x20
lw a0,-0x7fc4(gp)
li a1,0x6f
lw t9,-0x7810(gp)
addiu a2,a2,0x4304
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x3574
(translation_unit "void FUN_001af210(void)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}\n\n" (function_definition "void FUN_001af210(void)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" primitive_type (function_declarator "FUN_001af210(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char cStack_cd;" primitive_type identifier ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" (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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x4304" identifier + number_literal) ))) ;) (expression_statement "piVar11 = (int *)&DAT_0000011a;" (assignment_expression "piVar11 = (int *)&DAT_0000011a" identifier = (cast_expression "(int *)&DAT_0000011a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000011a" & identifier))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x3127ec);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x3127ec)" identifier = (pointer_expression "*(code **)(puVar13 + 0x3127ec)" * (cast_expression "(code **)(puVar13 + 0x3127ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x3127ec)" ( (binary_expression "puVar13 + 0x3127ec" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;" (assignment_expression "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14" identifier = (binary_expression "*(int *)(puVar13 + 0x312038) + 0x3a14" (pointer_expression "*(int *)(puVar13 + 0x312038)" * (cast_expression "(int *)(puVar13 + 0x312038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x312038)" ( (binary_expression "puVar13 + 0x312038" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);" (call_expression "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" ( identifier , number_literal , (binary_expression "*(int *)(puVar13 + 0x31280c) + 0x4230" (pointer_expression "*(int *)(puVar13 + 0x31280c)" * (cast_expression "(int *)(puVar13 + 0x31280c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x31280c)" ( (binary_expression "puVar13 + 0x31280c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" if (parenthesized_expression "(uVar8 < 0x40000000)" ( (binary_expression "uVar8 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" { (expression_statement "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);" (assignment_expression "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" identifier = (call_expression "(**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312130))" ( (pointer_expression "**(code **)(pcVar14 + 0x312130)" * (pointer_expression "*(code **)(pcVar14 + 0x312130)" * (cast_expression "(code **)(pcVar14 + 0x312130)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312130)" ( (binary_expression "pcVar14 + 0x312130" identifier + number_literal) ))))) )) (argument_list "(uVar8 << 2)" ( (binary_expression "uVar8 << 2" identifier << number_literal) )))) ;) (expression_statement "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);" (call_expression "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x3169f0))" ( (pointer_expression "**(code **)(pcVar14 + 0x3169f0)" * (pointer_expression "*(code **)(pcVar14 + 0x3169f0)" * (cast_expression "(code **)(pcVar14 + 0x3169f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x3169f0)" ( (binary_expression "pcVar14 + 0x3169f0" identifier + number_literal) ))))) )) (argument_list "(uVar3,0,uVar8 << 2)" ( identifier , number_literal , (binary_expression "uVar8 << 2" identifier << number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x312848);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x312848)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x312848)" * (cast_expression "(code **)(pcVar14 + 0x312848)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312848)" ( (binary_expression "pcVar14 + 0x312848" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(uVar8 + 0x30);" (assignment_expression "pcVar6 = *(char **)(uVar8 + 0x30)" identifier = (pointer_expression "*(char **)(uVar8 + 0x30)" * (cast_expression "(char **)(uVar8 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x30)" ( (binary_expression "uVar8 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x31276c)" * (cast_expression "(int *)(pcVar14 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x31276c)" ( (binary_expression "pcVar14 + 0x31276c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" { (expression_statement "*(uint *)(pcVar6 + 8) = uVar8;" (assignment_expression "*(uint *)(pcVar6 + 8) = uVar8" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar14 + 0x31276c) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x31276c)" * (cast_expression "(int *)(pcVar14 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x31276c)" ( (binary_expression "pcVar14 + 0x31276c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x31274c))" ( (pointer_expression "**(code **)(pcVar14 + 0x31274c)" * (pointer_expression "*(code **)(pcVar14 + 0x31274c)" * (cast_expression "(code **)(pcVar14 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x31274c)" ( (binary_expression "pcVar14 + 0x31274c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" * (cast_expression "(int *)(pcVar14 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311f98)" ( (binary_expression "pcVar14 + 0x311f98" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x31274c);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x31274c)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x31274c)" * (cast_expression "(code **)(pcVar14 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x31274c)" ( (binary_expression "pcVar14 + 0x31274c" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" * (cast_expression "(int *)(pcVar14 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311f98)" ( (binary_expression "pcVar14 + 0x311f98" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x38);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x38)" identifier = (pointer_expression "*(char **)(iVar9 + 0x38)" * (cast_expression "(char **)(iVar9 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" * (cast_expression "(int *)(pcVar15 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3126d8)" ( (binary_expression "pcVar15 + 0x3126d8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar15 + 0x3126d8) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" * (cast_expression "(int *)(pcVar15 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3126d8)" ( (binary_expression "pcVar15 + 0x3126d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar15 + 0x3126b8))" ( (pointer_expression "**(code **)(pcVar15 + 0x3126b8)" * (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" * (cast_expression "(code **)(pcVar15 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3126b8)" ( (binary_expression "pcVar15 + 0x3126b8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" * (cast_expression "(int *)(pcVar15 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f04)" ( (binary_expression "pcVar15 + 0x311f04" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x3126b8);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x3126b8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" * (cast_expression "(code **)(pcVar15 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3126b8)" ( (binary_expression "pcVar15 + 0x3126b8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" * (cast_expression "(int *)(pcVar15 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f04)" ( (binary_expression "pcVar15 + 0x311f04" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" identifier = (pointer_expression "*(char **)(iVar9 + 0x30)" * (cast_expression "(char **)(iVar9 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x312644)" * (cast_expression "(int *)(pcVar14 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x312644)" ( (binary_expression "pcVar14 + 0x312644" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar14 + 0x312644) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x312644)" * (cast_expression "(int *)(pcVar14 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x312644)" ( (binary_expression "pcVar14 + 0x312644" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312624))" ( (pointer_expression "**(code **)(pcVar14 + 0x312624)" * (pointer_expression "*(code **)(pcVar14 + 0x312624)" * (cast_expression "(code **)(pcVar14 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312624)" ( (binary_expression "pcVar14 + 0x312624" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" * (cast_expression "(int *)(pcVar14 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311e70)" ( (binary_expression "pcVar14 + 0x311e70" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x312624);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x312624)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x312624)" * (cast_expression "(code **)(pcVar14 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312624)" ( (binary_expression "pcVar14 + 0x312624" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" * (cast_expression "(int *)(pcVar14 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311e70)" ( (binary_expression "pcVar14 + 0x311e70" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "cStack_cd = (char)pcVar15 + -0x60;" (assignment_expression "cStack_cd = (char)pcVar15 + -0x60" identifier = (binary_expression "(char)pcVar15 + -0x60" (cast_expression "(char)pcVar15" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x2c);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x2c)" identifier = (pointer_expression "*(char **)(iVar9 + 0x2c)" * (cast_expression "(char **)(iVar9 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x2c)" ( (binary_expression "iVar9 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" * identifier) = identifier) ;) (if_statement "if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" { (labeled_statement "LAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);" statement_identifier : (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" identifier = (pointer_expression "*(char **)(iVar9 + 0x30)" * (cast_expression "(char **)(iVar9 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;)) (if_statement "if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" { (expression_statement "bVar1 = iVar5 == 4;" (assignment_expression "bVar1 = iVar5 == 4" identifier = (binary_expression "iVar5 == 4" identifier == number_literal)) ;) (expression_statement "iVar5 = iVar4 + 2;" (assignment_expression "iVar5 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_001af570;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_001af570;" goto statement_identifier ;)) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 2] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 2] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 2]" identifier [ (binary_expression "iVar4 + 2" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" * identifier) = identifier) ;) (if_statement "if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" { (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;" if (parenthesized_expression "(*(int *)(pcVar6 + 8) != 0)" ( (binary_expression "*(int *)(pcVar6 + 8) != 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001af590;" goto statement_identifier ;)) (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "pcVar7 = *(char **)(iVar9 + 0x34);" (assignment_expression "pcVar7 = *(char **)(iVar9 + 0x34)" identifier = (pointer_expression "*(char **)(iVar9 + 0x34)" * (cast_expression "(char **)(iVar9 + 0x34)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar11[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar11[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar11[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5 + 1;" (assignment_expression "*piVar11 = iVar5 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n          return;\n        }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" { (expression_statement "*(int *)(pcVar7 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar9" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_001af590;" goto statement_identifier ;) })) (goto_statement "goto LAB_001af570;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_001af4e4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" else (compound_statement "{\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" { (labeled_statement "LAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" (call_expression "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x312590))" ( (pointer_expression "**(code **)(pcVar15 + 0x312590)" * (pointer_expression "*(code **)(pcVar15 + 0x312590)" * (cast_expression "(code **)(pcVar15 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312590)" ( (binary_expression "pcVar15 + 0x312590" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" ( (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" * (cast_expression "(int *)(pcVar15 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311ddc)" ( (binary_expression "pcVar15 + 0x311ddc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x3125b0) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) )))) + number_literal) ))) ;)) }))) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);" statement_identifier : (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x312590);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x312590)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x312590)" * (cast_expression "(code **)(pcVar15 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312590)" ( (binary_expression "pcVar15 + 0x312590" identifier + number_literal) ))))) ;)) (expression_statement "iVar4 = iVar4 + 0x42e4;" (assignment_expression "iVar4 = iVar4 + 0x42e4" identifier = (binary_expression "iVar4 + 0x42e4" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" ( (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" * (cast_expression "(int *)(pcVar15 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311ddc)" ( (binary_expression "pcVar15 + 0x311ddc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)(puVar10,0x7c);" (call_expression "(*pcVar14)(puVar10,0x7c)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(puVar10,0x7c)" ( identifier , number_literal ))) ;) (expression_statement "uVar3 = *puVar10;" (assignment_expression "uVar3 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);" (assignment_expression "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18)" identifier = (call_expression "(**(code **)(pcVar14 + 0x311e00))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x311e00))" ( (pointer_expression "**(code **)(pcVar14 + 0x311e00)" * (pointer_expression "*(code **)(pcVar14 + 0x311e00)" * (cast_expression "(code **)(pcVar14 + 0x311e00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x311e00)" ( (binary_expression "pcVar14 + 0x311e00" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar9 + 0x14) = pcVar6;" (assignment_expression "*(char **)(iVar9 + 0x14) = pcVar6" (pointer_expression "*(char **)(iVar9 + 0x14)" * (cast_expression "(char **)(iVar9 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x3126d8);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x3126d8)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x3126d8)" * (cast_expression "(code **)(pcVar14 + 0x3126d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x3126d8)" ( (binary_expression "pcVar14 + 0x3126d8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar9 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar15)(iVar9,uVar3);" (call_expression "(*pcVar15)(iVar9,uVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,uVar3)" ( identifier , identifier ))) ;) (expression_statement "piVar12 = *(int **)(pcVar14 + 0x312b34);" (assignment_expression "piVar12 = *(int **)(pcVar14 + 0x312b34)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x312b34)" * (cast_expression "(int **)(pcVar14 + 0x312b34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312b34)" ( (binary_expression "pcVar14 + 0x312b34" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x312b38);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x312b38)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x312b38)" * (cast_expression "(int **)(pcVar14 + 0x312b38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312b38)" ( (binary_expression "pcVar14 + 0x312b38" identifier + number_literal) ))))) ;) (expression_statement "puVar10[2] = puVar10[2] + 1;" (assignment_expression "puVar10[2] = puVar10[2] + 1" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (binary_expression "puVar10[2] + 1" (subscript_expression "puVar10[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "puVar10[7] = pcVar6;" (assignment_expression "puVar10[7] = pcVar6" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = iVar4;" (assignment_expression "puVar10[6] = iVar4" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = *puVar10;" (assignment_expression "puVar10[3] = *puVar10" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*(char *)(puVar10 + 4) = cStack_cd;" (assignment_expression "*(char *)(puVar10 + 4) = cStack_cd" (pointer_expression "*(char *)(puVar10 + 4)" * (cast_expression "(char *)(puVar10 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar9 + 1;" (assignment_expression "*piVar11 = iVar9 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: uchar * get_output_view(Output_file * this, off_t start, size_t size,\n   Output_file * this) */\n\nuchar * __thiscall\ngold::Output_file::get_output_view(Output_file *this,off_t start,size_t size,Output_file *this_1)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uchar *puVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 *puVar11;\n  int *piVar12;\n  int *piVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  char cStack_cd;\n  \n  puVar14 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar12 = (int *)&DAT_0000011a;\n  pcVar15 = *(code **)(puVar14 + 0x3127ec);\n  uVar9 = *(int *)(puVar14 + 0x312038) + 0x3a14;\n  (*pcVar15)(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230);\n  if (uVar9 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);\n    puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);\n    return puVar4;\n  }\n  pcVar15 = *(code **)(pcVar15 + 0x312848);\n  (*pcVar15)();\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(uVar9 + 0x30);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x31276c);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar16 = *(code **)(pcVar15 + 0x31274c);\n  iVar10 = *(int *)(pcVar15 + 0x311f98) + -0x7f8;\n  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x38);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar16 + 0x3126d8);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar16 + 0x3126b8);\n  iVar10 = *(int *)(pcVar16 + 0x311f04) + -0x7f8;\n  (*pcVar15)(iVar10,0x7c,iVar5 + 0x42e4);\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x30);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x312644);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar16 = *(code **)(pcVar15 + 0x312624);\n  iVar10 = *(int *)(pcVar15 + 0x311e70) + -0x7f8;\n  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);\n  cStack_cd = (char)pcVar16 + -0x60;\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x2c);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    iVar6 = iVar5 + 1;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar6;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);\n  }\n  iVar5 = *(int *)(pcVar16 + 0x3125b0);\nLAB_001af590:\n  pcVar15 = *(code **)(pcVar16 + 0x312590);\n  iVar5 = iVar5 + 0x42e4;\n  puVar11 = (undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8);\n  (*pcVar15)(puVar11,0x7c);\n  uVar3 = *puVar11;\n  iVar10 = (**(code **)(pcVar15 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar10 + 0xc) = 0;\n  *(undefined4 *)(iVar10 + 8) = 0;\n  *(char **)(iVar10 + 0x14) = pcVar7;\n  pcVar16 = *(code **)(pcVar15 + 0x3126d8);\n  *(int *)(iVar10 + 0x10) = iVar5;\n  (*pcVar16)(iVar10,uVar3);\n  piVar13 = *(int **)(pcVar15 + 0x312b34);\n  piVar12 = *(int **)(pcVar15 + 0x312b38);\n  puVar11[2] = puVar11[2] + 1;\n  iVar6 = *piVar13;\n  iVar10 = *piVar12;\n  puVar11[7] = pcVar7;\n  puVar4 = (uchar *)(iVar10 + 1);\n  puVar11[6] = iVar5;\n  puVar11[3] = *puVar11;\n  *(char *)(puVar11 + 4) = cStack_cd;\n  *piVar13 = iVar6 + 1;\n  *piVar12 = (int)puVar4;\n  return puVar4;\n}\n\n" comment (ERROR "uchar * __thiscall\ngold::Output_file::get_output_view(Output_file *this,off_t start,size_t size,Output_file *this_1)" (binary_expression "uchar * __thiscall\ngold::Output_file::get_output_view(Output_file *this" (binary_expression "uchar * __thiscall" identifier * identifier) (ERROR "gold::Output_file::get_output_view(Output_file" identifier : : identifier : : identifier ( identifier) * identifier) , type_identifier identifier , identifier (ERROR "size" identifier) , (ERROR "Output_file" identifier) (pointer_declarator "*this_1" * identifier) )) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uchar *puVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 *puVar11;\n  int *piVar12;\n  int *piVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  char cStack_cd;\n  \n  puVar14 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar12 = (int *)&DAT_0000011a;\n  pcVar15 = *(code **)(puVar14 + 0x3127ec);\n  uVar9 = *(int *)(puVar14 + 0x312038) + 0x3a14;\n  (*pcVar15)(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230);\n  if (uVar9 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);\n    puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);\n    return puVar4;\n  }\n  pcVar15 = *(code **)(pcVar15 + 0x312848);\n  (*pcVar15)();\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(uVar9 + 0x30);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x31276c);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar16 = *(code **)(pcVar15 + 0x31274c);\n  iVar10 = *(int *)(pcVar15 + 0x311f98) + -0x7f8;\n  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x38);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar16 + 0x3126d8);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar16 + 0x3126b8);\n  iVar10 = *(int *)(pcVar16 + 0x311f04) + -0x7f8;\n  (*pcVar15)(iVar10,0x7c,iVar5 + 0x42e4);\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x30);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x312644);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);\n  }\n  piVar12 = (int *)&DAT_0000007c;\n  pcVar16 = *(code **)(pcVar15 + 0x312624);\n  iVar10 = *(int *)(pcVar15 + 0x311e70) + -0x7f8;\n  (*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);\n  cStack_cd = (char)pcVar16 + -0x60;\n  iVar5 = *piVar12;\n  pcVar7 = *(char **)(iVar10 + 0x2c);\n  if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    iVar6 = iVar5 + 1;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar6;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);\n  }\n  iVar5 = *(int *)(pcVar16 + 0x3125b0);\nLAB_001af590:\n  pcVar15 = *(code **)(pcVar16 + 0x312590);\n  iVar5 = iVar5 + 0x42e4;\n  puVar11 = (undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8);\n  (*pcVar15)(puVar11,0x7c);\n  uVar3 = *puVar11;\n  iVar10 = (**(code **)(pcVar15 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar10 + 0xc) = 0;\n  *(undefined4 *)(iVar10 + 8) = 0;\n  *(char **)(iVar10 + 0x14) = pcVar7;\n  pcVar16 = *(code **)(pcVar15 + 0x3126d8);\n  *(int *)(iVar10 + 0x10) = iVar5;\n  (*pcVar16)(iVar10,uVar3);\n  piVar13 = *(int **)(pcVar15 + 0x312b34);\n  piVar12 = *(int **)(pcVar15 + 0x312b38);\n  puVar11[2] = puVar11[2] + 1;\n  iVar6 = *piVar13;\n  iVar10 = *piVar12;\n  puVar11[7] = pcVar7;\n  puVar4 = (uchar *)(iVar10 + 1);\n  puVar11[6] = iVar5;\n  puVar11[3] = *puVar11;\n  *(char *)(puVar11 + 4) = cStack_cd;\n  *piVar13 = iVar6 + 1;\n  *piVar12 = (int)puVar4;\n  return puVar4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char cStack_cd;" primitive_type identifier ;) (expression_statement "puVar14 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" (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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x4304" identifier + number_literal) ))) ;) (expression_statement "piVar12 = (int *)&DAT_0000011a;" (assignment_expression "piVar12 = (int *)&DAT_0000011a" identifier = (cast_expression "(int *)&DAT_0000011a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000011a" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x3127ec);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x3127ec)" identifier = (pointer_expression "*(code **)(puVar14 + 0x3127ec)" * (cast_expression "(code **)(puVar14 + 0x3127ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x3127ec)" ( (binary_expression "puVar14 + 0x3127ec" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(int *)(puVar14 + 0x312038) + 0x3a14;" (assignment_expression "uVar9 = *(int *)(puVar14 + 0x312038) + 0x3a14" identifier = (binary_expression "*(int *)(puVar14 + 0x312038) + 0x3a14" (pointer_expression "*(int *)(puVar14 + 0x312038)" * (cast_expression "(int *)(puVar14 + 0x312038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x312038)" ( (binary_expression "puVar14 + 0x312038" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230);" (call_expression "(*pcVar15)(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(uVar9,0x11a,*(int *)(puVar14 + 0x31280c) + 0x4230)" ( identifier , number_literal , (binary_expression "*(int *)(puVar14 + 0x31280c) + 0x4230" (pointer_expression "*(int *)(puVar14 + 0x31280c)" * (cast_expression "(int *)(puVar14 + 0x31280c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 0x31280c)" ( (binary_expression "puVar14 + 0x31280c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar9 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);\n    puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);\n    return puVar4;\n  }" if (parenthesized_expression "(uVar9 < 0x40000000)" ( (binary_expression "uVar9 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);\n    puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);\n    return puVar4;\n  }" { (expression_statement "uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2);" (assignment_expression "uVar3 = (**(code **)(pcVar15 + 0x312130))(uVar9 << 2)" identifier = (call_expression "(**(code **)(pcVar15 + 0x312130))(uVar9 << 2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x312130))" ( (pointer_expression "**(code **)(pcVar15 + 0x312130)" * (pointer_expression "*(code **)(pcVar15 + 0x312130)" * (cast_expression "(code **)(pcVar15 + 0x312130)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312130)" ( (binary_expression "pcVar15 + 0x312130" identifier + number_literal) ))))) )) (argument_list "(uVar9 << 2)" ( (binary_expression "uVar9 << 2" identifier << number_literal) )))) ;) (expression_statement "puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2);" (assignment_expression "puVar4 = (uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2)" identifier = (cast_expression "(uchar *)(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar15 + 0x3169f0))(uVar3,0,uVar9 << 2)" (parenthesized_expression "(**(code **)(pcVar15 + 0x3169f0))" ( (pointer_expression "**(code **)(pcVar15 + 0x3169f0)" * (pointer_expression "*(code **)(pcVar15 + 0x3169f0)" * (cast_expression "(code **)(pcVar15 + 0x3169f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3169f0)" ( (binary_expression "pcVar15 + 0x3169f0" identifier + number_literal) ))))) )) (argument_list "(uVar3,0,uVar9 << 2)" ( identifier , number_literal , (binary_expression "uVar9 << 2" identifier << number_literal) ))))) ;) (return_statement "return puVar4;" return identifier ;) })) (expression_statement "pcVar15 = *(code **)(pcVar15 + 0x312848);" (assignment_expression "pcVar15 = *(code **)(pcVar15 + 0x312848)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x312848)" * (cast_expression "(code **)(pcVar15 + 0x312848)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312848)" ( (binary_expression "pcVar15 + 0x312848" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar7 = *(char **)(uVar9 + 0x30);" (assignment_expression "pcVar7 = *(char **)(uVar9 + 0x30)" identifier = (pointer_expression "*(char **)(uVar9 + 0x30)" * (cast_expression "(char **)(uVar9 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar9 + 0x30)" ( (binary_expression "uVar9 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x31276c);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);\n  }" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x31276c);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar12[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar12[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar12[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return (uchar *)(iVar5 + 1);\n    }" { (return_statement "return (uchar *)(iVar5 + 1);" return (cast_expression "(uchar *)(iVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(pcVar15 + 0x31276c);" (assignment_expression "iVar5 = *(int *)(pcVar15 + 0x31276c)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x31276c)" * (cast_expression "(int *)(pcVar15 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x31276c)" ( (binary_expression "pcVar15 + 0x31276c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(uint *)(pcVar7 + 8) = uVar9;\n      return (uchar *)0x0;\n    }" { (expression_statement "*(uint *)(pcVar7 + 8) = uVar9;" (assignment_expression "*(uint *)(pcVar7 + 8) = uVar9" (pointer_expression "*(uint *)(pcVar7 + 8)" * (cast_expression "(uint *)(pcVar7 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return (uchar *)0x0;" return (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);\n  }" else (compound_statement "{\n    iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);\n  }" { (expression_statement "iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0;" (assignment_expression "iVar5 = *(int *)(pcVar15 + 0x31276c) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar15 + 0x31276c) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x31276c)" * (cast_expression "(int *)(pcVar15 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x31276c)" ( (binary_expression "pcVar15 + 0x31276c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5);" (call_expression "(**(code **)(pcVar15 + 0x31274c))(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5)" (parenthesized_expression "(**(code **)(pcVar15 + 0x31274c))" ( (pointer_expression "**(code **)(pcVar15 + 0x31274c)" * (pointer_expression "*(code **)(pcVar15 + 0x31274c)" * (cast_expression "(code **)(pcVar15 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x31274c)" ( (binary_expression "pcVar15 + 0x31274c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311f98) + -0x7f8,0x12e,iVar5)" ( (binary_expression "*(int *)(pcVar15 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f98)" * (cast_expression "(int *)(pcVar15 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f98)" ( (binary_expression "pcVar15 + 0x311f98" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar12 = (int *)&DAT_0000007c;" (assignment_expression "piVar12 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x31274c);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x31274c)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x31274c)" * (cast_expression "(code **)(pcVar15 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x31274c)" ( (binary_expression "pcVar15 + 0x31274c" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar15 + 0x311f98) + -0x7f8;" (assignment_expression "iVar10 = *(int *)(pcVar15 + 0x311f98) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar15 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f98)" * (cast_expression "(int *)(pcVar15 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f98)" ( (binary_expression "pcVar15 + 0x311f98" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);" (call_expression "(*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(iVar10,0x7c,iVar5 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar5 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar7 = *(char **)(iVar10 + 0x38);" (assignment_expression "pcVar7 = *(char **)(iVar10 + 0x38)" identifier = (pointer_expression "*(char **)(iVar10 + 0x38)" * (cast_expression "(char **)(iVar10 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar16 + 0x3126d8);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);\n  }" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar16 + 0x3126d8);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar12[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar12[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar12[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return (uchar *)(iVar5 + 1);\n    }" { (return_statement "return (uchar *)(iVar5 + 1);" return (cast_expression "(uchar *)(iVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(pcVar16 + 0x3126d8);" (assignment_expression "iVar5 = *(int *)(pcVar16 + 0x3126d8)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x3126d8)" * (cast_expression "(int *)(pcVar16 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3126d8)" ( (binary_expression "pcVar16 + 0x3126d8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }" { (expression_statement "*(int *)(pcVar7 + 8) = iVar10;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar10" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return (uchar *)0x0;" return (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);\n  }" else (compound_statement "{\n    iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);\n  }" { (expression_statement "iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0;" (assignment_expression "iVar5 = *(int *)(pcVar16 + 0x3126d8) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar16 + 0x3126d8) + 0x42f0" (pointer_expression "*(int *)(pcVar16 + 0x3126d8)" * (cast_expression "(int *)(pcVar16 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3126d8)" ( (binary_expression "pcVar16 + 0x3126d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5);" (call_expression "(**(code **)(pcVar16 + 0x3126b8))(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5)" (parenthesized_expression "(**(code **)(pcVar16 + 0x3126b8))" ( (pointer_expression "**(code **)(pcVar16 + 0x3126b8)" * (pointer_expression "*(code **)(pcVar16 + 0x3126b8)" * (cast_expression "(code **)(pcVar16 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x3126b8)" ( (binary_expression "pcVar16 + 0x3126b8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar16 + 0x311f04) + -0x7f8,0x12e,iVar5)" ( (binary_expression "*(int *)(pcVar16 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar16 + 0x311f04)" * (cast_expression "(int *)(pcVar16 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x311f04)" ( (binary_expression "pcVar16 + 0x311f04" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar12 = (int *)&DAT_0000007c;" (assignment_expression "piVar12 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x3126b8);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x3126b8)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x3126b8)" * (cast_expression "(code **)(pcVar16 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x3126b8)" ( (binary_expression "pcVar16 + 0x3126b8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar16 + 0x311f04) + -0x7f8;" (assignment_expression "iVar10 = *(int *)(pcVar16 + 0x311f04) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar16 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar16 + 0x311f04)" * (cast_expression "(int *)(pcVar16 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x311f04)" ( (binary_expression "pcVar16 + 0x311f04" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar10,0x7c,iVar5 + 0x42e4);" (call_expression "(*pcVar15)(iVar10,0x7c,iVar5 + 0x42e4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar10,0x7c,iVar5 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar5 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar7 = *(char **)(iVar10 + 0x30);" (assignment_expression "pcVar7 = *(char **)(iVar10 + 0x30)" identifier = (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) ))))) ;) (if_statement "if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x312644);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }\n  else {\n    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);\n  }" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar5 + 1;\n    if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }\n    iVar5 = *(int *)(pcVar15 + 0x312644);\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar12[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar12[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar12[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return (uchar *)(iVar5 + 1);\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return (uchar *)(iVar5 + 1);\n    }" { (return_statement "return (uchar *)(iVar5 + 1);" return (cast_expression "(uchar *)(iVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 1)" ( (binary_expression "iVar5 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(pcVar15 + 0x312644);" (assignment_expression "iVar5 = *(int *)(pcVar15 + 0x312644)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x312644)" * (cast_expression "(int *)(pcVar15 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x312644)" ( (binary_expression "pcVar15 + 0x312644" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar7 + 8) = iVar10;\n      return (uchar *)0x0;\n    }" { (expression_statement "*(int *)(pcVar7 + 8) = iVar10;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar10" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return (uchar *)0x0;" return (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);\n  }" else (compound_statement "{\n    iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);\n  }" { (expression_statement "iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0;" (assignment_expression "iVar5 = *(int *)(pcVar15 + 0x312644) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar15 + 0x312644) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x312644)" * (cast_expression "(int *)(pcVar15 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x312644)" ( (binary_expression "pcVar15 + 0x312644" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5);" (call_expression "(**(code **)(pcVar15 + 0x312624))(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5)" (parenthesized_expression "(**(code **)(pcVar15 + 0x312624))" ( (pointer_expression "**(code **)(pcVar15 + 0x312624)" * (pointer_expression "*(code **)(pcVar15 + 0x312624)" * (cast_expression "(code **)(pcVar15 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312624)" ( (binary_expression "pcVar15 + 0x312624" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311e70) + -0x7f8,0x12e,iVar5)" ( (binary_expression "*(int *)(pcVar15 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311e70)" * (cast_expression "(int *)(pcVar15 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311e70)" ( (binary_expression "pcVar15 + 0x311e70" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar12 = (int *)&DAT_0000007c;" (assignment_expression "piVar12 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x312624);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x312624)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x312624)" * (cast_expression "(code **)(pcVar15 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312624)" ( (binary_expression "pcVar15 + 0x312624" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar15 + 0x311e70) + -0x7f8;" (assignment_expression "iVar10 = *(int *)(pcVar15 + 0x311e70) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar15 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311e70)" * (cast_expression "(int *)(pcVar15 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311e70)" ( (binary_expression "pcVar15 + 0x311e70" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4);" (call_expression "(*pcVar16)(iVar10,0x7c,iVar5 + 0x42e4)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(iVar10,0x7c,iVar5 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar5 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "cStack_cd = (char)pcVar16 + -0x60;" (assignment_expression "cStack_cd = (char)pcVar16 + -0x60" identifier = (binary_expression "(char)pcVar16 + -0x60" (cast_expression "(char)pcVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar7 = *(char **)(iVar10 + 0x2c);" (assignment_expression "pcVar7 = *(char **)(iVar10 + 0x2c)" identifier = (pointer_expression "*(char **)(iVar10 + 0x2c)" * (cast_expression "(char **)(iVar10 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 < 4) {\n    cVar2 = *pcVar7;\n    iVar6 = iVar5 + 1;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar6;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);\n  }" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar7;\n    iVar6 = iVar5 + 1;\n    piVar12[iVar5 + 1] = (int)pcVar7;\n    *piVar12 = iVar6;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }\n  }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "iVar6 = iVar5 + 1;" (assignment_expression "iVar6 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar12[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar12[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar12[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar6;" (assignment_expression "*piVar12 = iVar6" (pointer_expression "*piVar12" * identifier) = identifier) ;) (if_statement "if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);\n      if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }\n      pcVar8 = *(char **)(iVar10 + 0x34);\n      if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" { (labeled_statement "LAB_001af4e4:\n      pcVar7 = *(char **)(iVar10 + 0x30);" statement_identifier : (expression_statement "pcVar7 = *(char **)(iVar10 + 0x30);" (assignment_expression "pcVar7 = *(char **)(iVar10 + 0x30)" identifier = (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) ))))) ;)) (if_statement "if (pcVar7 != (char *)0x0) {\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar1 = iVar6 == 4;\n        iVar6 = iVar5 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar7;\n        piVar12[iVar5 + 2] = (int)pcVar7;\n        *piVar12 = iVar6;\n        if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }\n      }" { (expression_statement "bVar1 = iVar6 == 4;" (assignment_expression "bVar1 = iVar6 == 4" identifier = (binary_expression "iVar6 == 4" identifier == number_literal)) ;) (expression_statement "iVar6 = iVar5 + 2;" (assignment_expression "iVar6 = iVar5 + 2" identifier = (binary_expression "iVar5 + 2" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_001af570;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_001af570;" goto statement_identifier ;)) (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar12[iVar5 + 2] = (int)pcVar7;" (assignment_expression "piVar12[iVar5 + 2] = (int)pcVar7" (subscript_expression "piVar12[iVar5 + 2]" identifier [ (binary_expression "iVar5 + 2" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar6;" (assignment_expression "*piVar12 = iVar6" (pointer_expression "*piVar12" * identifier) = identifier) ;) (if_statement "if (cVar2 == '\0') {\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar5 = *(int *)(pcVar16 + 0x3125b0);\n          if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar7 + 8) = iVar10;\n        }" { (expression_statement "iVar5 = *(int *)(pcVar16 + 0x3125b0);" (assignment_expression "iVar5 = *(int *)(pcVar16 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x3125b0)" * (cast_expression "(int *)(pcVar16 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3125b0)" ( (binary_expression "pcVar16 + 0x3125b0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar7 + 8) != 0) goto LAB_001af590;" if (parenthesized_expression "(*(int *)(pcVar7 + 8) != 0)" ( (binary_expression "*(int *)(pcVar7 + 8) != 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001af590;" goto statement_identifier ;)) (expression_statement "*(int *)(pcVar7 + 8) = iVar10;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar10" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "pcVar8 = *(char **)(iVar10 + 0x34);" (assignment_expression "pcVar8 = *(char **)(iVar10 + 0x34)" identifier = (pointer_expression "*(char **)(iVar10 + 0x34)" * (cast_expression "(char **)(iVar10 + 0x34)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (iVar6 != 4) {\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }" if (parenthesized_expression "(iVar6 != 4)" ( (binary_expression "iVar6 != 4" identifier != number_literal) )) (compound_statement "{\n        cVar2 = *pcVar8;\n        piVar12[iVar6 + 1] = (int)pcVar8;\n        *piVar12 = iVar6 + 1;\n        if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }\n        iVar5 = *(int *)(pcVar16 + 0x3125b0);\n        pcVar7 = (char *)0x0;\n        if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }\n        goto LAB_001af590;\n      }" { (expression_statement "cVar2 = *pcVar8;" (assignment_expression "cVar2 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "piVar12[iVar6 + 1] = (int)pcVar8;" (assignment_expression "piVar12[iVar6 + 1] = (int)pcVar8" (subscript_expression "piVar12[iVar6 + 1]" identifier [ (binary_expression "iVar6 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar12 = iVar6 + 1;" (assignment_expression "*piVar12 = iVar6 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n          return (uchar *)(iVar6 + 1);\n        }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return (uchar *)(iVar6 + 1);\n        }" { (return_statement "return (uchar *)(iVar6 + 1);" return (cast_expression "(uchar *)(iVar6 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(pcVar16 + 0x3125b0);" (assignment_expression "iVar5 = *(int *)(pcVar16 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x3125b0)" * (cast_expression "(int *)(pcVar16 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3125b0)" ( (binary_expression "pcVar16 + 0x3125b0" identifier + number_literal) ))))) ;) (expression_statement "pcVar7 = (char *)0x0;" (assignment_expression "pcVar7 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(pcVar8 + 8) == 0) {\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }" if (parenthesized_expression "(*(int *)(pcVar8 + 8) == 0)" ( (binary_expression "*(int *)(pcVar8 + 8) == 0" (pointer_expression "*(int *)(pcVar8 + 8)" * (cast_expression "(int *)(pcVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 8)" ( (binary_expression "pcVar8 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(int *)(pcVar8 + 8) = iVar10;\n          return (uchar *)0x0;\n        }" { (expression_statement "*(int *)(pcVar8 + 8) = iVar10;" (assignment_expression "*(int *)(pcVar8 + 8) = iVar10" (pointer_expression "*(int *)(pcVar8 + 8)" * (cast_expression "(int *)(pcVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 8)" ( (binary_expression "pcVar8 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return (uchar *)0x0;" return (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_001af590;" goto statement_identifier ;) })) (goto_statement "goto LAB_001af570;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar7 + 8) = iVar10;\n      goto LAB_001af4e4;\n    }" { (expression_statement "*(int *)(pcVar7 + 8) = iVar10;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar10" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_001af4e4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);\n  }" else (compound_statement "{\nLAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);\n  }" { (labeled_statement "LAB_001af570:\n    (**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);" statement_identifier : (expression_statement "(**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0);" (call_expression "(**(code **)(pcVar16 + 0x312590))\n              (*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0)" (parenthesized_expression "(**(code **)(pcVar16 + 0x312590))" ( (pointer_expression "**(code **)(pcVar16 + 0x312590)" * (pointer_expression "*(code **)(pcVar16 + 0x312590)" * (cast_expression "(code **)(pcVar16 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x312590)" ( (binary_expression "pcVar16 + 0x312590" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar16 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar16 + 0x3125b0) + 0x42f0)" ( (binary_expression "*(int *)(pcVar16 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar16 + 0x311ddc)" * (cast_expression "(int *)(pcVar16 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x311ddc)" ( (binary_expression "pcVar16 + 0x311ddc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar16 + 0x3125b0) + 0x42f0" (pointer_expression "*(int *)(pcVar16 + 0x3125b0)" * (cast_expression "(int *)(pcVar16 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3125b0)" ( (binary_expression "pcVar16 + 0x3125b0" identifier + number_literal) )))) + number_literal) ))) ;)) }))) (expression_statement "iVar5 = *(int *)(pcVar16 + 0x3125b0);" (assignment_expression "iVar5 = *(int *)(pcVar16 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x3125b0)" * (cast_expression "(int *)(pcVar16 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x3125b0)" ( (binary_expression "pcVar16 + 0x3125b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001af590:\n  pcVar15 = *(code **)(pcVar16 + 0x312590);" statement_identifier : (expression_statement "pcVar15 = *(code **)(pcVar16 + 0x312590);" (assignment_expression "pcVar15 = *(code **)(pcVar16 + 0x312590)" identifier = (pointer_expression "*(code **)(pcVar16 + 0x312590)" * (cast_expression "(code **)(pcVar16 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x312590)" ( (binary_expression "pcVar16 + 0x312590" identifier + number_literal) ))))) ;)) (expression_statement "iVar5 = iVar5 + 0x42e4;" (assignment_expression "iVar5 = iVar5 + 0x42e4" identifier = (binary_expression "iVar5 + 0x42e4" identifier + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8);" (assignment_expression "puVar11 = (undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar16 + 0x311ddc) + -0x7f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar16 + 0x311ddc) + -0x7f8)" ( (binary_expression "*(int *)(pcVar16 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar16 + 0x311ddc)" * (cast_expression "(int *)(pcVar16 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x311ddc)" ( (binary_expression "pcVar16 + 0x311ddc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar15)(puVar11,0x7c);" (call_expression "(*pcVar15)(puVar11,0x7c)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(puVar11,0x7c)" ( identifier , number_literal ))) ;) (expression_statement "uVar3 = *puVar11;" (assignment_expression "uVar3 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "iVar10 = (**(code **)(pcVar15 + 0x311e00))(0x18);" (assignment_expression "iVar10 = (**(code **)(pcVar15 + 0x311e00))(0x18)" identifier = (call_expression "(**(code **)(pcVar15 + 0x311e00))(0x18)" (parenthesized_expression "(**(code **)(pcVar15 + 0x311e00))" ( (pointer_expression "**(code **)(pcVar15 + 0x311e00)" * (pointer_expression "*(code **)(pcVar15 + 0x311e00)" * (cast_expression "(code **)(pcVar15 + 0x311e00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x311e00)" ( (binary_expression "pcVar15 + 0x311e00" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 8)" * (cast_expression "(undefined4 *)(iVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar10 + 0x14) = pcVar7;" (assignment_expression "*(char **)(iVar10 + 0x14) = pcVar7" (pointer_expression "*(char **)(iVar10 + 0x14)" * (cast_expression "(char **)(iVar10 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar16 = *(code **)(pcVar15 + 0x3126d8);" (assignment_expression "pcVar16 = *(code **)(pcVar15 + 0x3126d8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x3126d8)" * (cast_expression "(code **)(pcVar15 + 0x3126d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3126d8)" ( (binary_expression "pcVar15 + 0x3126d8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar10 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar10 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar16)(iVar10,uVar3);" (call_expression "(*pcVar16)(iVar10,uVar3)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(iVar10,uVar3)" ( identifier , identifier ))) ;) (expression_statement "piVar13 = *(int **)(pcVar15 + 0x312b34);" (assignment_expression "piVar13 = *(int **)(pcVar15 + 0x312b34)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x312b34)" * (cast_expression "(int **)(pcVar15 + 0x312b34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312b34)" ( (binary_expression "pcVar15 + 0x312b34" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = *(int **)(pcVar15 + 0x312b38);" (assignment_expression "piVar12 = *(int **)(pcVar15 + 0x312b38)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x312b38)" * (cast_expression "(int **)(pcVar15 + 0x312b38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312b38)" ( (binary_expression "pcVar15 + 0x312b38" identifier + number_literal) ))))) ;) (expression_statement "puVar11[2] = puVar11[2] + 1;" (assignment_expression "puVar11[2] = puVar11[2] + 1" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (binary_expression "puVar11[2] + 1" (subscript_expression "puVar11[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar6 = *piVar13;" (assignment_expression "iVar6 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "iVar10 = *piVar12;" (assignment_expression "iVar10 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "puVar11[7] = pcVar7;" (assignment_expression "puVar11[7] = pcVar7" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = (uchar *)(iVar10 + 1);" (assignment_expression "puVar4 = (uchar *)(iVar10 + 1)" identifier = (cast_expression "(uchar *)(iVar10 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar11[6] = iVar5;" (assignment_expression "puVar11[6] = iVar5" (subscript_expression "puVar11[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[3] = *puVar11;" (assignment_expression "puVar11[3] = *puVar11" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*(char *)(puVar11 + 4) = cStack_cd;" (assignment_expression "*(char *)(puVar11 + 4) = cStack_cd" (pointer_expression "*(char *)(puVar11 + 4)" * (cast_expression "(char *)(puVar11 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar13 = iVar6 + 1;" (assignment_expression "*piVar13 = iVar6 + 1" (pointer_expression "*piVar13" * identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "*piVar12 = (int)puVar4;" (assignment_expression "*piVar12 = (int)puVar4" (pointer_expression "*piVar12" * identifier) = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return puVar4;" return identifier ;) }))
(translation_unit "void FUN_001af210(void)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}\n\n" (function_definition "void FUN_001af210(void)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" primitive_type (function_declarator "FUN_001af210(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char cStack_cd;" primitive_type identifier ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" (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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x4304" identifier + number_literal) ))) ;) (expression_statement "piVar11 = (int *)&DAT_0000011a;" (assignment_expression "piVar11 = (int *)&DAT_0000011a" identifier = (cast_expression "(int *)&DAT_0000011a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000011a" & identifier))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x3127ec);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x3127ec)" identifier = (pointer_expression "*(code **)(puVar13 + 0x3127ec)" * (cast_expression "(code **)(puVar13 + 0x3127ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x3127ec)" ( (binary_expression "puVar13 + 0x3127ec" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;" (assignment_expression "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14" identifier = (binary_expression "*(int *)(puVar13 + 0x312038) + 0x3a14" (pointer_expression "*(int *)(puVar13 + 0x312038)" * (cast_expression "(int *)(puVar13 + 0x312038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x312038)" ( (binary_expression "puVar13 + 0x312038" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);" (call_expression "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" ( identifier , number_literal , (binary_expression "*(int *)(puVar13 + 0x31280c) + 0x4230" (pointer_expression "*(int *)(puVar13 + 0x31280c)" * (cast_expression "(int *)(puVar13 + 0x31280c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x31280c)" ( (binary_expression "puVar13 + 0x31280c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" if (parenthesized_expression "(uVar8 < 0x40000000)" ( (binary_expression "uVar8 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" { (expression_statement "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);" (assignment_expression "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" identifier = (call_expression "(**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312130))" ( (pointer_expression "**(code **)(pcVar14 + 0x312130)" * (pointer_expression "*(code **)(pcVar14 + 0x312130)" * (cast_expression "(code **)(pcVar14 + 0x312130)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312130)" ( (binary_expression "pcVar14 + 0x312130" identifier + number_literal) ))))) )) (argument_list "(uVar8 << 2)" ( (binary_expression "uVar8 << 2" identifier << number_literal) )))) ;) (expression_statement "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);" (call_expression "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x3169f0))" ( (pointer_expression "**(code **)(pcVar14 + 0x3169f0)" * (pointer_expression "*(code **)(pcVar14 + 0x3169f0)" * (cast_expression "(code **)(pcVar14 + 0x3169f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x3169f0)" ( (binary_expression "pcVar14 + 0x3169f0" identifier + number_literal) ))))) )) (argument_list "(uVar3,0,uVar8 << 2)" ( identifier , number_literal , (binary_expression "uVar8 << 2" identifier << number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x312848);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x312848)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x312848)" * (cast_expression "(code **)(pcVar14 + 0x312848)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312848)" ( (binary_expression "pcVar14 + 0x312848" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(uVar8 + 0x30);" (assignment_expression "pcVar6 = *(char **)(uVar8 + 0x30)" identifier = (pointer_expression "*(char **)(uVar8 + 0x30)" * (cast_expression "(char **)(uVar8 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar8 + 0x30)" ( (binary_expression "uVar8 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x31276c)" * (cast_expression "(int *)(pcVar14 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x31276c)" ( (binary_expression "pcVar14 + 0x31276c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" { (expression_statement "*(uint *)(pcVar6 + 8) = uVar8;" (assignment_expression "*(uint *)(pcVar6 + 8) = uVar8" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar14 + 0x31276c) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x31276c)" * (cast_expression "(int *)(pcVar14 + 0x31276c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x31276c)" ( (binary_expression "pcVar14 + 0x31276c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x31274c))" ( (pointer_expression "**(code **)(pcVar14 + 0x31274c)" * (pointer_expression "*(code **)(pcVar14 + 0x31274c)" * (cast_expression "(code **)(pcVar14 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x31274c)" ( (binary_expression "pcVar14 + 0x31274c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" * (cast_expression "(int *)(pcVar14 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311f98)" ( (binary_expression "pcVar14 + 0x311f98" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x31274c);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x31274c)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x31274c)" * (cast_expression "(code **)(pcVar14 + 0x31274c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x31274c)" ( (binary_expression "pcVar14 + 0x31274c" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" * (cast_expression "(int *)(pcVar14 + 0x311f98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311f98)" ( (binary_expression "pcVar14 + 0x311f98" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x38);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x38)" identifier = (pointer_expression "*(char **)(iVar9 + 0x38)" * (cast_expression "(char **)(iVar9 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x38)" ( (binary_expression "iVar9 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" * (cast_expression "(int *)(pcVar15 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3126d8)" ( (binary_expression "pcVar15 + 0x3126d8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar15 + 0x3126d8) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" * (cast_expression "(int *)(pcVar15 + 0x3126d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3126d8)" ( (binary_expression "pcVar15 + 0x3126d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar15 + 0x3126b8))" ( (pointer_expression "**(code **)(pcVar15 + 0x3126b8)" * (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" * (cast_expression "(code **)(pcVar15 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3126b8)" ( (binary_expression "pcVar15 + 0x3126b8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" * (cast_expression "(int *)(pcVar15 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f04)" ( (binary_expression "pcVar15 + 0x311f04" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x3126b8);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x3126b8)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" * (cast_expression "(code **)(pcVar15 + 0x3126b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x3126b8)" ( (binary_expression "pcVar15 + 0x3126b8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" * (cast_expression "(int *)(pcVar15 + 0x311f04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311f04)" ( (binary_expression "pcVar15 + 0x311f04" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" identifier = (pointer_expression "*(char **)(iVar9 + 0x30)" * (cast_expression "(char **)(iVar9 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x312644)" * (cast_expression "(int *)(pcVar14 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x312644)" ( (binary_expression "pcVar14 + 0x312644" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0" identifier = (binary_expression "*(int *)(pcVar14 + 0x312644) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x312644)" * (cast_expression "(int *)(pcVar14 + 0x312644)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x312644)" ( (binary_expression "pcVar14 + 0x312644" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312624))" ( (pointer_expression "**(code **)(pcVar14 + 0x312624)" * (pointer_expression "*(code **)(pcVar14 + 0x312624)" * (cast_expression "(code **)(pcVar14 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312624)" ( (binary_expression "pcVar14 + 0x312624" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" ( (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" * (cast_expression "(int *)(pcVar14 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311e70)" ( (binary_expression "pcVar14 + 0x311e70" identifier + number_literal) )))) + number_literal) , number_literal , identifier ))) ;) }))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" identifier = (cast_expression "(int *)&DAT_0000007c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000007c" & identifier))) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x312624);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x312624)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x312624)" * (cast_expression "(code **)(pcVar14 + 0x312624)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312624)" ( (binary_expression "pcVar14 + 0x312624" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8" identifier = (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" * (cast_expression "(int *)(pcVar14 + 0x311e70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x311e70)" ( (binary_expression "pcVar14 + 0x311e70" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" ( identifier , number_literal , (binary_expression "iVar4 + 0x42e4" identifier + number_literal) ))) ;) (expression_statement "cStack_cd = (char)pcVar15 + -0x60;" (assignment_expression "cStack_cd = (char)pcVar15 + -0x60" identifier = (binary_expression "(char)pcVar15 + -0x60" (cast_expression "(char)pcVar15" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x2c);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x2c)" identifier = (pointer_expression "*(char **)(iVar9 + 0x2c)" * (cast_expression "(char **)(iVar9 + 0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x2c)" ( (binary_expression "iVar9 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" if (parenthesized_expression "(iVar4 < 4)" ( (binary_expression "iVar4 < 4" identifier < number_literal) )) (compound_statement "{\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }" { (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" identifier [ (binary_expression "iVar4 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" * identifier) = identifier) ;) (if_statement "if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" { (labeled_statement "LAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);" statement_identifier : (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" identifier = (pointer_expression "*(char **)(iVar9 + 0x30)" * (cast_expression "(char **)(iVar9 + 0x30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;)) (if_statement "if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" { (expression_statement "bVar1 = iVar5 == 4;" (assignment_expression "bVar1 = iVar5 == 4" identifier = (binary_expression "iVar5 == 4" identifier == number_literal)) ;) (expression_statement "iVar5 = iVar4 + 2;" (assignment_expression "iVar5 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (if_statement "if (bVar1) goto LAB_001af570;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_001af570;" goto statement_identifier ;)) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "piVar11[iVar4 + 2] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 2] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 2]" identifier [ (binary_expression "iVar4 + 2" identifier + number_literal) ]) = (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" * identifier) = identifier) ;) (if_statement "if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" { (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;" if (parenthesized_expression "(*(int *)(pcVar6 + 8) != 0)" ( (binary_expression "*(int *)(pcVar6 + 8) != 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001af590;" goto statement_identifier ;)) (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) })) })) (expression_statement "pcVar7 = *(char **)(iVar9 + 0x34);" (assignment_expression "pcVar7 = *(char **)(iVar9 + 0x34)" identifier = (pointer_expression "*(char **)(iVar9 + 0x34)" * (cast_expression "(char **)(iVar9 + 0x34)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x34)" ( (binary_expression "iVar9 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" if (parenthesized_expression "(iVar5 != 4)" ( (binary_expression "iVar5 != 4" identifier != number_literal) )) (compound_statement "{\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" { (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "piVar11[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar11[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar11[iVar5 + 1]" identifier [ (binary_expression "iVar5 + 1" identifier + number_literal) ]) = (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = iVar5 + 1;" (assignment_expression "*piVar11 = iVar5 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (cVar2 != '\0') {\n          return;\n        }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" if (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" ( (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" { (expression_statement "*(int *)(pcVar7 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar9" (pointer_expression "*(int *)(pcVar7 + 8)" * (cast_expression "(int *)(pcVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 8)" ( (binary_expression "pcVar7 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_001af590;" goto statement_identifier ;) })) (goto_statement "goto LAB_001af570;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" if (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" ( (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" { (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_001af4e4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" else (compound_statement "{\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" { (labeled_statement "LAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" statement_identifier : (expression_statement "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" (call_expression "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x312590))" ( (pointer_expression "**(code **)(pcVar15 + 0x312590)" * (pointer_expression "*(code **)(pcVar15 + 0x312590)" * (cast_expression "(code **)(pcVar15 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312590)" ( (binary_expression "pcVar15 + 0x312590" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" ( (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" * (cast_expression "(int *)(pcVar15 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311ddc)" ( (binary_expression "pcVar15 + 0x311ddc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar15 + 0x3125b0) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) )))) + number_literal) ))) ;)) }))) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" * (cast_expression "(int *)(pcVar15 + 0x3125b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x3125b0)" ( (binary_expression "pcVar15 + 0x3125b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);" statement_identifier : (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x312590);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x312590)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x312590)" * (cast_expression "(code **)(pcVar15 + 0x312590)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x312590)" ( (binary_expression "pcVar15 + 0x312590" identifier + number_literal) ))))) ;)) (expression_statement "iVar4 = iVar4 + 0x42e4;" (assignment_expression "iVar4 = iVar4 + 0x42e4" identifier = (binary_expression "iVar4 + 0x42e4" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" ( (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" * (cast_expression "(int *)(pcVar15 + 0x311ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x311ddc)" ( (binary_expression "pcVar15 + 0x311ddc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)(puVar10,0x7c);" (call_expression "(*pcVar14)(puVar10,0x7c)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(puVar10,0x7c)" ( identifier , number_literal ))) ;) (expression_statement "uVar3 = *puVar10;" (assignment_expression "uVar3 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);" (assignment_expression "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18)" identifier = (call_expression "(**(code **)(pcVar14 + 0x311e00))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x311e00))" ( (pointer_expression "**(code **)(pcVar14 + 0x311e00)" * (pointer_expression "*(code **)(pcVar14 + 0x311e00)" * (cast_expression "(code **)(pcVar14 + 0x311e00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x311e00)" ( (binary_expression "pcVar14 + 0x311e00" identifier + number_literal) ))))) )) (argument_list "(0x18)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar9 + 0x14) = pcVar6;" (assignment_expression "*(char **)(iVar9 + 0x14) = pcVar6" (pointer_expression "*(char **)(iVar9 + 0x14)" * (cast_expression "(char **)(iVar9 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x3126d8);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x3126d8)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x3126d8)" * (cast_expression "(code **)(pcVar14 + 0x3126d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x3126d8)" ( (binary_expression "pcVar14 + 0x3126d8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar9 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar15)(iVar9,uVar3);" (call_expression "(*pcVar15)(iVar9,uVar3)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(iVar9,uVar3)" ( identifier , identifier ))) ;) (expression_statement "piVar12 = *(int **)(pcVar14 + 0x312b34);" (assignment_expression "piVar12 = *(int **)(pcVar14 + 0x312b34)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x312b34)" * (cast_expression "(int **)(pcVar14 + 0x312b34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312b34)" ( (binary_expression "pcVar14 + 0x312b34" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x312b38);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x312b38)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x312b38)" * (cast_expression "(int **)(pcVar14 + 0x312b38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x312b38)" ( (binary_expression "pcVar14 + 0x312b38" identifier + number_literal) ))))) ;) (expression_statement "puVar10[2] = puVar10[2] + 1;" (assignment_expression "puVar10[2] = puVar10[2] + 1" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (binary_expression "puVar10[2] + 1" (subscript_expression "puVar10[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "puVar10[7] = pcVar6;" (assignment_expression "puVar10[7] = pcVar6" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = iVar4;" (assignment_expression "puVar10[6] = iVar4" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = *puVar10;" (assignment_expression "puVar10[3] = *puVar10" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*(char *)(puVar10 + 4) = cStack_cd;" (assignment_expression "*(char *)(puVar10 + 4) = cStack_cd" (pointer_expression "*(char *)(puVar10 + 4)" * (cast_expression "(char *)(puVar10 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" * identifier) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar9 + 1;" (assignment_expression "*piVar11 = iVar9 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 ;) (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 ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression IDENT << LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_001af210(void)\n\n{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001af210(void)" (identifier "FUN_001af210") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  char *pcVar7;\n  uint uVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  char cStack_cd;\n  \n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);\n  piVar11 = (int *)&DAT_0000011a;\n  pcVar14 = *(code **)(puVar13 + 0x3127ec);\n  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;\n  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);\n  if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }\n  pcVar14 = *(code **)(pcVar14 + 0x312848);\n  (*pcVar14)();\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(uVar8 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x31274c);\n  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x38);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar14 = *(code **)(pcVar15 + 0x3126b8);\n  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;\n  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x30);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }\n  piVar11 = (int *)&DAT_0000007c;\n  pcVar15 = *(code **)(pcVar14 + 0x312624);\n  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;\n  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);\n  cStack_cd = (char)pcVar15 + -0x60;\n  iVar4 = *piVar11;\n  pcVar6 = *(char **)(iVar9 + 0x2c);\n  if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }\n  iVar4 = *(int *)(pcVar15 + 0x3125b0);\nLAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);\n  iVar4 = iVar4 + 0x42e4;\n  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);\n  (*pcVar14)(puVar10,0x7c);\n  uVar3 = *puVar10;\n  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);\n  *(undefined4 *)(iVar9 + 0xc) = 0;\n  *(undefined4 *)(iVar9 + 8) = 0;\n  *(char **)(iVar9 + 0x14) = pcVar6;\n  pcVar15 = *(code **)(pcVar14 + 0x3126d8);\n  *(int *)(iVar9 + 0x10) = iVar4;\n  (*pcVar15)(iVar9,uVar3);\n  piVar12 = *(int **)(pcVar14 + 0x312b34);\n  piVar11 = *(int **)(pcVar14 + 0x312b38);\n  puVar10[2] = puVar10[2] + 1;\n  iVar5 = *piVar12;\n  iVar9 = *piVar11;\n  puVar10[7] = pcVar6;\n  puVar10[6] = iVar4;\n  puVar10[3] = *puVar10;\n  *(char *)(puVar10 + 4) = cStack_cd;\n  *piVar12 = iVar5 + 1;\n  *piVar11 = iVar9 + 1;\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "char cStack_cd;" (primitive_type "char") (identifier "cStack_cd") (; ";")) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar13") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" (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 "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x6f") (, ",") (binary_expression "PTR_s__s_004c1a50 + 0x4304" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0x4304")) () ")"))) (; ";")) (expression_statement "piVar11 = (int *)&DAT_0000011a;" (assignment_expression "piVar11 = (int *)&DAT_0000011a" (identifier "piVar11") (= "=") (cast_expression "(int *)&DAT_0000011a" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000011a" (& "&") (identifier "DAT_0000011a")))) (; ";")) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x3127ec);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x3127ec)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puVar13 + 0x3127ec)" (* "*") (cast_expression "(code **)(puVar13 + 0x3127ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x3127ec)" (( "(") (binary_expression "puVar13 + 0x3127ec" (identifier "puVar13") (+ "+") (number_literal "0x3127ec")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;" (assignment_expression "uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14" (identifier "uVar8") (= "=") (binary_expression "*(int *)(puVar13 + 0x312038) + 0x3a14" (pointer_expression "*(int *)(puVar13 + 0x312038)" (* "*") (cast_expression "(int *)(puVar13 + 0x312038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x312038)" (( "(") (binary_expression "puVar13 + 0x312038" (identifier "puVar13") (+ "+") (number_literal "0x312038")) () ")")))) (+ "+") (number_literal "0x3a14"))) (; ";")) (expression_statement "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);" (call_expression "(*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230)" (( "(") (identifier "uVar8") (, ",") (number_literal "0x11a") (, ",") (binary_expression "*(int *)(puVar13 + 0x31280c) + 0x4230" (pointer_expression "*(int *)(puVar13 + 0x31280c)" (* "*") (cast_expression "(int *)(puVar13 + 0x31280c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x31280c)" (( "(") (binary_expression "puVar13 + 0x31280c" (identifier "puVar13") (+ "+") (number_literal "0x31280c")) () ")")))) (+ "+") (number_literal "0x4230")) () ")"))) (; ";")) (if_statement "if (uVar8 < 0x40000000) {\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar8 < 0x40000000)" (( "(") (binary_expression "uVar8 < 0x40000000" (identifier "uVar8") (< "<") (number_literal "0x40000000")) () ")")) (compound_statement "{\n    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);\n    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);\n    return;\n  }" ({ "{") (expression_statement "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);" (assignment_expression "uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(pcVar14 + 0x312130))(uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312130))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x312130)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x312130)" (* "*") (cast_expression "(code **)(pcVar14 + 0x312130)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312130)" (( "(") (binary_expression "pcVar14 + 0x312130" (identifier "pcVar14") (+ "+") (number_literal "0x312130")) () ")"))))) () ")")) (argument_list "(uVar8 << 2)" (( "(") (binary_expression "uVar8 << 2" (identifier "uVar8") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);" (call_expression "(**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2)" (parenthesized_expression "(**(code **)(pcVar14 + 0x3169f0))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x3169f0)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x3169f0)" (* "*") (cast_expression "(code **)(pcVar14 + 0x3169f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x3169f0)" (( "(") (binary_expression "pcVar14 + 0x3169f0" (identifier "pcVar14") (+ "+") (number_literal "0x3169f0")) () ")"))))) () ")")) (argument_list "(uVar3,0,uVar8 << 2)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") (, ",") (binary_expression "uVar8 << 2" (identifier "uVar8") (<< "<<") (number_literal "2")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x312848);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x312848)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x312848)" (* "*") (cast_expression "(code **)(pcVar14 + 0x312848)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312848)" (( "(") (binary_expression "pcVar14 + 0x312848" (identifier "pcVar14") (+ "+") (number_literal "0x312848")) () ")"))))) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" (identifier "iVar4") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "pcVar6 = *(char **)(uVar8 + 0x30);" (assignment_expression "pcVar6 = *(char **)(uVar8 + 0x30)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(uVar8 + 0x30)" (* "*") (cast_expression "(char **)(uVar8 + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar8 + 0x30)" (( "(") (binary_expression "uVar8 + 0x30" (identifier "uVar8") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" (if "if") (parenthesized_expression "(iVar4 < 4)" (( "(") (binary_expression "iVar4 < 4" (identifier "iVar4") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x31276c);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }\n  }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" (identifier "piVar11") ([ "[") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) (; ";")) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar14 + 0x31276c)" (* "*") (cast_expression "(int *)(pcVar14 + 0x31276c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x31276c)" (( "(") (binary_expression "pcVar14 + 0x31276c" (identifier "pcVar14") (+ "+") (number_literal "0x31276c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" (( "(") (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(uint *)(pcVar6 + 8) = uVar8;\n      return;\n    }" ({ "{") (expression_statement "*(uint *)(pcVar6 + 8) = uVar8;" (assignment_expression "*(uint *)(pcVar6 + 8) = uVar8" (pointer_expression "*(uint *)(pcVar6 + 8)" (* "*") (cast_expression "(uint *)(pcVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" (else "else") (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;\n    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar14 + 0x31276c) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x31276c)" (* "*") (cast_expression "(int *)(pcVar14 + 0x31276c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x31276c)" (( "(") (binary_expression "pcVar14 + 0x31276c" (identifier "pcVar14") (+ "+") (number_literal "0x31276c")) () ")")))) (+ "+") (number_literal "0x42f0"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x31274c))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x31274c)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x31274c)" (* "*") (cast_expression "(code **)(pcVar14 + 0x31274c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x31274c)" (( "(") (binary_expression "pcVar14 + 0x31274c" (identifier "pcVar14") (+ "+") (number_literal "0x31274c")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4)" (( "(") (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" (* "*") (cast_expression "(int *)(pcVar14 + 0x311f98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x311f98)" (( "(") (binary_expression "pcVar14 + 0x311f98" (identifier "pcVar14") (+ "+") (number_literal "0x311f98")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0x12e") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" (identifier "piVar11") (= "=") (cast_expression "(int *)&DAT_0000007c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000007c" (& "&") (identifier "DAT_0000007c")))) (; ";")) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x31274c);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x31274c)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x31274c)" (* "*") (cast_expression "(code **)(pcVar14 + 0x31274c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x31274c)" (( "(") (binary_expression "pcVar14 + 0x31274c" (identifier "pcVar14") (+ "+") (number_literal "0x31274c")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar14 + 0x311f98) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311f98)" (* "*") (cast_expression "(int *)(pcVar14 + 0x311f98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x311f98)" (( "(") (binary_expression "pcVar14 + 0x311f98" (identifier "pcVar14") (+ "+") (number_literal "0x311f98")) () ")")))) (+ "+") (number_literal "-0x7f8"))) (; ";")) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" (( "(") (identifier "iVar9") (, ",") (number_literal "0x7c") (, ",") (binary_expression "iVar4 + 0x42e4" (identifier "iVar4") (+ "+") (number_literal "0x42e4")) () ")"))) (; ";")) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" (identifier "iVar4") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x38);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x38)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(iVar9 + 0x38)" (* "*") (cast_expression "(char **)(iVar9 + 0x38)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x38)" (( "(") (binary_expression "iVar9 + 0x38" (identifier "iVar9") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" (if "if") (parenthesized_expression "(iVar4 < 4)" (( "(") (binary_expression "iVar4 < 4" (identifier "iVar4") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar15 + 0x3126d8);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" (identifier "piVar11") ([ "[") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) (; ";")) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3126d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3126d8)" (( "(") (binary_expression "pcVar15 + 0x3126d8" (identifier "pcVar15") (+ "+") (number_literal "0x3126d8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" (( "(") (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" ({ "{") (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" (else "else") (compound_statement "{\n    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;\n    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar15 + 0x3126d8) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3126d8)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3126d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3126d8)" (( "(") (binary_expression "pcVar15 + 0x3126d8" (identifier "pcVar15") (+ "+") (number_literal "0x3126d8")) () ")")))) (+ "+") (number_literal "0x42f0"))) (; ";")) (expression_statement "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar15 + 0x3126b8))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x3126b8)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" (* "*") (cast_expression "(code **)(pcVar15 + 0x3126b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x3126b8)" (( "(") (binary_expression "pcVar15 + 0x3126b8" (identifier "pcVar15") (+ "+") (number_literal "0x3126b8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" (* "*") (cast_expression "(int *)(pcVar15 + 0x311f04)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x311f04)" (( "(") (binary_expression "pcVar15 + 0x311f04" (identifier "pcVar15") (+ "+") (number_literal "0x311f04")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0x12e") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" (identifier "piVar11") (= "=") (cast_expression "(int *)&DAT_0000007c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000007c" (& "&") (identifier "DAT_0000007c")))) (; ";")) (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x3126b8);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x3126b8)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x3126b8)" (* "*") (cast_expression "(code **)(pcVar15 + 0x3126b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x3126b8)" (( "(") (binary_expression "pcVar15 + 0x3126b8" (identifier "pcVar15") (+ "+") (number_literal "0x3126b8")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar15 + 0x311f04) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311f04)" (* "*") (cast_expression "(int *)(pcVar15 + 0x311f04)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x311f04)" (( "(") (binary_expression "pcVar15 + 0x311f04" (identifier "pcVar15") (+ "+") (number_literal "0x311f04")) () ")")))) (+ "+") (number_literal "-0x7f8"))) (; ";")) (expression_statement "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" (( "(") (identifier "iVar9") (, ",") (number_literal "0x7c") (, ",") (binary_expression "iVar4 + 0x42e4" (identifier "iVar4") (+ "+") (number_literal "0x42e4")) () ")"))) (; ";")) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" (identifier "iVar4") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(iVar9 + 0x30)" (* "*") (cast_expression "(char **)(iVar9 + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" (if "if") (parenthesized_expression "(iVar4 < 4)" (( "(") (binary_expression "iVar4 < 4" (identifier "iVar4") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    cVar2 = *pcVar6;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar4 + 1;\n    if (cVar2 != '\0') {\n      return;\n    }\n    iVar4 = *(int *)(pcVar14 + 0x312644);\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }\n  }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" (identifier "piVar11") ([ "[") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) (; ";")) (expression_statement "*piVar11 = iVar4 + 1;" (assignment_expression "*piVar11 = iVar4 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n      return;\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644);" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar14 + 0x312644)" (* "*") (cast_expression "(int *)(pcVar14 + 0x312644)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x312644)" (( "(") (binary_expression "pcVar14 + 0x312644" (identifier "pcVar14") (+ "+") (number_literal "0x312644")) () ")"))))) (; ";")) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" (( "(") (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      return;\n    }" ({ "{") (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" (else "else") (compound_statement "{\n    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;\n    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;" (assignment_expression "iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0" (identifier "iVar4") (= "=") (binary_expression "*(int *)(pcVar14 + 0x312644) + 0x42f0" (pointer_expression "*(int *)(pcVar14 + 0x312644)" (* "*") (cast_expression "(int *)(pcVar14 + 0x312644)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x312644)" (( "(") (binary_expression "pcVar14 + 0x312644" (identifier "pcVar14") (+ "+") (number_literal "0x312644")) () ")")))) (+ "+") (number_literal "0x42f0"))) (; ";")) (expression_statement "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);" (call_expression "(**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" (parenthesized_expression "(**(code **)(pcVar14 + 0x312624))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x312624)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x312624)" (* "*") (cast_expression "(code **)(pcVar14 + 0x312624)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312624)" (( "(") (binary_expression "pcVar14 + 0x312624" (identifier "pcVar14") (+ "+") (number_literal "0x312624")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4)" (( "(") (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" (* "*") (cast_expression "(int *)(pcVar14 + 0x311e70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x311e70)" (( "(") (binary_expression "pcVar14 + 0x311e70" (identifier "pcVar14") (+ "+") (number_literal "0x311e70")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0x12e") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar11 = (int *)&DAT_0000007c;" (assignment_expression "piVar11 = (int *)&DAT_0000007c" (identifier "piVar11") (= "=") (cast_expression "(int *)&DAT_0000007c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000007c" (& "&") (identifier "DAT_0000007c")))) (; ";")) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x312624);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x312624)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x312624)" (* "*") (cast_expression "(code **)(pcVar14 + 0x312624)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312624)" (( "(") (binary_expression "pcVar14 + 0x312624" (identifier "pcVar14") (+ "+") (number_literal "0x312624")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;" (assignment_expression "iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar14 + 0x311e70) + -0x7f8" (pointer_expression "*(int *)(pcVar14 + 0x311e70)" (* "*") (cast_expression "(int *)(pcVar14 + 0x311e70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar14 + 0x311e70)" (( "(") (binary_expression "pcVar14 + 0x311e70" (identifier "pcVar14") (+ "+") (number_literal "0x311e70")) () ")")))) (+ "+") (number_literal "-0x7f8"))) (; ";")) (expression_statement "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);" (call_expression "(*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar9,0x7c,iVar4 + 0x42e4)" (( "(") (identifier "iVar9") (, ",") (number_literal "0x7c") (, ",") (binary_expression "iVar4 + 0x42e4" (identifier "iVar4") (+ "+") (number_literal "0x42e4")) () ")"))) (; ";")) (expression_statement "cStack_cd = (char)pcVar15 + -0x60;" (assignment_expression "cStack_cd = (char)pcVar15 + -0x60" (identifier "cStack_cd") (= "=") (binary_expression "(char)pcVar15 + -0x60" (cast_expression "(char)pcVar15" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar15")) (+ "+") (number_literal "-0x60"))) (; ";")) (expression_statement "iVar4 = *piVar11;" (assignment_expression "iVar4 = *piVar11" (identifier "iVar4") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "pcVar6 = *(char **)(iVar9 + 0x2c);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x2c)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(iVar9 + 0x2c)" (* "*") (cast_expression "(char **)(iVar9 + 0x2c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x2c)" (( "(") (binary_expression "iVar9 + 0x2c" (identifier "iVar9") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (iVar4 < 4) {\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }\n  else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" (if "if") (parenthesized_expression "(iVar4 < 4)" (( "(") (binary_expression "iVar4 < 4" (identifier "iVar4") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    cVar2 = *pcVar6;\n    iVar5 = iVar4 + 1;\n    piVar11[iVar4 + 1] = (int)pcVar6;\n    *piVar11 = iVar5;\n    if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }\n    if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }\n  }" ({ "{") (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "iVar5 = iVar4 + 1;" (assignment_expression "iVar5 = iVar4 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11[iVar4 + 1] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 1] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 1]" (identifier "piVar11") ([ "[") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) (; ";")) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (cVar2 != '\0') {\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);\n      if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }\n      pcVar7 = *(char **)(iVar9 + 0x34);\n      if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }\n      goto LAB_001af570;\n    }" ({ "{") (labeled_statement "LAB_001af4e4:\n      pcVar6 = *(char **)(iVar9 + 0x30);" (statement_identifier "LAB_001af4e4") (: ":") (expression_statement "pcVar6 = *(char **)(iVar9 + 0x30);" (assignment_expression "pcVar6 = *(char **)(iVar9 + 0x30)" (identifier "pcVar6") (= "=") (pointer_expression "*(char **)(iVar9 + 0x30)" (* "*") (cast_expression "(char **)(iVar9 + 0x30)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (; ";"))) (if_statement "if (pcVar6 != (char *)0x0) {\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x0)" (( "(") (binary_expression "pcVar6 != (char *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        bVar1 = iVar5 == 4;\n        iVar5 = iVar4 + 2;\n        if (bVar1) goto LAB_001af570;\n        cVar2 = *pcVar6;\n        piVar11[iVar4 + 2] = (int)pcVar6;\n        *piVar11 = iVar5;\n        if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }\n      }" ({ "{") (expression_statement "bVar1 = iVar5 == 4;" (assignment_expression "bVar1 = iVar5 == 4" (identifier "bVar1") (= "=") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4"))) (; ";")) (expression_statement "iVar5 = iVar4 + 2;" (assignment_expression "iVar5 = iVar4 + 2" (identifier "iVar5") (= "=") (binary_expression "iVar4 + 2" (identifier "iVar4") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (bVar1) goto LAB_001af570;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_001af570;" (goto "goto") (statement_identifier "LAB_001af570") (; ";"))) (expression_statement "cVar2 = *pcVar6;" (assignment_expression "cVar2 = *pcVar6" (identifier "cVar2") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (expression_statement "piVar11[iVar4 + 2] = (int)pcVar6;" (assignment_expression "piVar11[iVar4 + 2] = (int)pcVar6" (subscript_expression "piVar11[iVar4 + 2]" (identifier "piVar11") ([ "[") (binary_expression "iVar4 + 2" (identifier "iVar4") (+ "+") (number_literal "2")) (] "]")) (= "=") (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6"))) (; ";")) (expression_statement "*piVar11 = iVar5;" (assignment_expression "*piVar11 = iVar5" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (cVar2 == '\0') {\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar4 = *(int *)(pcVar15 + 0x3125b0);\n          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;\n          *(int *)(pcVar6 + 8) = iVar9;\n        }" ({ "{") (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3125b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3125b0)" (( "(") (binary_expression "pcVar15 + 0x3125b0" (identifier "pcVar15") (+ "+") (number_literal "0x3125b0")) () ")"))))) (; ";")) (if_statement "if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;" (if "if") (parenthesized_expression "(*(int *)(pcVar6 + 8) != 0)" (( "(") (binary_expression "*(int *)(pcVar6 + 8) != 0" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001af590;" (goto "goto") (statement_identifier "LAB_001af590") (; ";"))) (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar7 = *(char **)(iVar9 + 0x34);" (assignment_expression "pcVar7 = *(char **)(iVar9 + 0x34)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(iVar9 + 0x34)" (* "*") (cast_expression "(char **)(iVar9 + 0x34)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x34)" (( "(") (binary_expression "iVar9 + 0x34" (identifier "iVar9") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 4) {\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" (if "if") (parenthesized_expression "(iVar5 != 4)" (( "(") (binary_expression "iVar5 != 4" (identifier "iVar5") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        cVar2 = *pcVar7;\n        piVar11[iVar5 + 1] = (int)pcVar7;\n        *piVar11 = iVar5 + 1;\n        if (cVar2 != '\0') {\n          return;\n        }\n        iVar4 = *(int *)(pcVar15 + 0x3125b0);\n        pcVar6 = (char *)0x0;\n        if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }\n        goto LAB_001af590;\n      }" ({ "{") (expression_statement "cVar2 = *pcVar7;" (assignment_expression "cVar2 = *pcVar7" (identifier "cVar2") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "piVar11[iVar5 + 1] = (int)pcVar7;" (assignment_expression "piVar11[iVar5 + 1] = (int)pcVar7" (subscript_expression "piVar11[iVar5 + 1]" (identifier "piVar11") ([ "[") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7"))) (; ";")) (expression_statement "*piVar11 = iVar5 + 1;" (assignment_expression "*piVar11 = iVar5 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar2 != '\0') {\n          return;\n        }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3125b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3125b0)" (( "(") (binary_expression "pcVar15 + 0x3125b0" (identifier "pcVar15") (+ "+") (number_literal "0x3125b0")) () ")"))))) (; ";")) (expression_statement "pcVar6 = (char *)0x0;" (assignment_expression "pcVar6 = (char *)0x0" (identifier "pcVar6") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (*(int *)(pcVar7 + 8) == 0) {\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" (if "if") (parenthesized_expression "(*(int *)(pcVar7 + 8) == 0)" (( "(") (binary_expression "*(int *)(pcVar7 + 8) == 0" (pointer_expression "*(int *)(pcVar7 + 8)" (* "*") (cast_expression "(int *)(pcVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 8)" (( "(") (binary_expression "pcVar7 + 8" (identifier "pcVar7") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(pcVar7 + 8) = iVar9;\n          return;\n        }" ({ "{") (expression_statement "*(int *)(pcVar7 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar7 + 8) = iVar9" (pointer_expression "*(int *)(pcVar7 + 8)" (* "*") (cast_expression "(int *)(pcVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 8)" (( "(") (binary_expression "pcVar7 + 8" (identifier "pcVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_001af590;" (goto "goto") (statement_identifier "LAB_001af590") (; ";")) (} "}"))) (goto_statement "goto LAB_001af570;" (goto "goto") (statement_identifier "LAB_001af570") (; ";")) (} "}"))) (if_statement "if (*(int *)(pcVar6 + 8) == 0) {\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" (if "if") (parenthesized_expression "(*(int *)(pcVar6 + 8) == 0)" (( "(") (binary_expression "*(int *)(pcVar6 + 8) == 0" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(pcVar6 + 8) = iVar9;\n      goto LAB_001af4e4;\n    }" ({ "{") (expression_statement "*(int *)(pcVar6 + 8) = iVar9;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar9" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (goto_statement "goto LAB_001af4e4;" (goto "goto") (statement_identifier "LAB_001af4e4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" (else "else") (compound_statement "{\nLAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);\n  }" ({ "{") (labeled_statement "LAB_001af570:\n    (**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" (statement_identifier "LAB_001af570") (: ":") (expression_statement "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);" (call_expression "(**(code **)(pcVar15 + 0x312590))\n              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" (parenthesized_expression "(**(code **)(pcVar15 + 0x312590))" (( "(") (pointer_expression "**(code **)(pcVar15 + 0x312590)" (* "*") (pointer_expression "*(code **)(pcVar15 + 0x312590)" (* "*") (cast_expression "(code **)(pcVar15 + 0x312590)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x312590)" (( "(") (binary_expression "pcVar15 + 0x312590" (identifier "pcVar15") (+ "+") (number_literal "0x312590")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" (* "*") (cast_expression "(int *)(pcVar15 + 0x311ddc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x311ddc)" (( "(") (binary_expression "pcVar15 + 0x311ddc" (identifier "pcVar15") (+ "+") (number_literal "0x311ddc")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0x12e") (, ",") (binary_expression "*(int *)(pcVar15 + 0x3125b0) + 0x42f0" (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3125b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3125b0)" (( "(") (binary_expression "pcVar15 + 0x3125b0" (identifier "pcVar15") (+ "+") (number_literal "0x3125b0")) () ")")))) (+ "+") (number_literal "0x42f0")) () ")"))) (; ";"))) (} "}")))) (expression_statement "iVar4 = *(int *)(pcVar15 + 0x3125b0);" (assignment_expression "iVar4 = *(int *)(pcVar15 + 0x3125b0)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar15 + 0x3125b0)" (* "*") (cast_expression "(int *)(pcVar15 + 0x3125b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x3125b0)" (( "(") (binary_expression "pcVar15 + 0x3125b0" (identifier "pcVar15") (+ "+") (number_literal "0x3125b0")) () ")"))))) (; ";")) (labeled_statement "LAB_001af590:\n  pcVar14 = *(code **)(pcVar15 + 0x312590);" (statement_identifier "LAB_001af590") (: ":") (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x312590);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x312590)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar15 + 0x312590)" (* "*") (cast_expression "(code **)(pcVar15 + 0x312590)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar15 + 0x312590)" (( "(") (binary_expression "pcVar15 + 0x312590" (identifier "pcVar15") (+ "+") (number_literal "0x312590")) () ")"))))) (; ";"))) (expression_statement "iVar4 = iVar4 + 0x42e4;" (assignment_expression "iVar4 = iVar4 + 0x42e4" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x42e4" (identifier "iVar4") (+ "+") (number_literal "0x42e4"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);" (assignment_expression "puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar15 + 0x311ddc) + -0x7f8)" (( "(") (binary_expression "*(int *)(pcVar15 + 0x311ddc) + -0x7f8" (pointer_expression "*(int *)(pcVar15 + 0x311ddc)" (* "*") (cast_expression "(int *)(pcVar15 + 0x311ddc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 0x311ddc)" (( "(") (binary_expression "pcVar15 + 0x311ddc" (identifier "pcVar15") (+ "+") (number_literal "0x311ddc")) () ")")))) (+ "+") (number_literal "-0x7f8")) () ")")))) (; ";")) (expression_statement "(*pcVar14)(puVar10,0x7c);" (call_expression "(*pcVar14)(puVar10,0x7c)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(puVar10,0x7c)" (( "(") (identifier "puVar10") (, ",") (number_literal "0x7c") () ")"))) (; ";")) (expression_statement "uVar3 = *puVar10;" (assignment_expression "uVar3 = *puVar10" (identifier "uVar3") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);" (assignment_expression "iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcVar14 + 0x311e00))(0x18)" (parenthesized_expression "(**(code **)(pcVar14 + 0x311e00))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x311e00)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x311e00)" (* "*") (cast_expression "(code **)(pcVar14 + 0x311e00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x311e00)" (( "(") (binary_expression "pcVar14 + 0x311e00" (identifier "pcVar14") (+ "+") (number_literal "0x311e00")) () ")"))))) () ")")) (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char **)(iVar9 + 0x14) = pcVar6;" (assignment_expression "*(char **)(iVar9 + 0x14) = pcVar6" (pointer_expression "*(char **)(iVar9 + 0x14)" (* "*") (cast_expression "(char **)(iVar9 + 0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x3126d8);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x3126d8)" (identifier "pcVar15") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x3126d8)" (* "*") (cast_expression "(code **)(pcVar14 + 0x3126d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x3126d8)" (( "(") (binary_expression "pcVar14 + 0x3126d8" (identifier "pcVar14") (+ "+") (number_literal "0x3126d8")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar9 + 0x10) = iVar4;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar4" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "(*pcVar15)(iVar9,uVar3);" (call_expression "(*pcVar15)(iVar9,uVar3)" (parenthesized_expression "(*pcVar15)" (( "(") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) () ")")) (argument_list "(iVar9,uVar3)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "piVar12 = *(int **)(pcVar14 + 0x312b34);" (assignment_expression "piVar12 = *(int **)(pcVar14 + 0x312b34)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x312b34)" (* "*") (cast_expression "(int **)(pcVar14 + 0x312b34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312b34)" (( "(") (binary_expression "pcVar14 + 0x312b34" (identifier "pcVar14") (+ "+") (number_literal "0x312b34")) () ")"))))) (; ";")) (expression_statement "piVar11 = *(int **)(pcVar14 + 0x312b38);" (assignment_expression "piVar11 = *(int **)(pcVar14 + 0x312b38)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x312b38)" (* "*") (cast_expression "(int **)(pcVar14 + 0x312b38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x312b38)" (( "(") (binary_expression "pcVar14 + 0x312b38" (identifier "pcVar14") (+ "+") (number_literal "0x312b38")) () ")"))))) (; ";")) (expression_statement "puVar10[2] = puVar10[2] + 1;" (assignment_expression "puVar10[2] = puVar10[2] + 1" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar10[2] + 1" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" (identifier "iVar5") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "iVar9 = *piVar11;" (assignment_expression "iVar9 = *piVar11" (identifier "iVar9") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "puVar10[7] = pcVar6;" (assignment_expression "puVar10[7] = pcVar6" (subscript_expression "puVar10[7]" (identifier "puVar10") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "puVar10[6] = iVar4;" (assignment_expression "puVar10[6] = iVar4" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "puVar10[3] = *puVar10;" (assignment_expression "puVar10[3] = *puVar10" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*(char *)(puVar10 + 4) = cStack_cd;" (assignment_expression "*(char *)(puVar10 + 4) = cStack_cd" (pointer_expression "*(char *)(puVar10 + 4)" (* "*") (cast_expression "(char *)(puVar10 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 4)" (( "(") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "cStack_cd")) (; ";")) (expression_statement "*piVar12 = iVar5 + 1;" (assignment_expression "*piVar12 = iVar5 + 1" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar11 = iVar9 + 1;" (assignment_expression "*piVar11 = iVar9 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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)) (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (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: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier))))))) (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: (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: (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: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier))))))) (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: (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: (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: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier))) (return_statement)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier))))))) (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: (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: (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: (identifier))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier))) (return_statement))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement))))

void MASKED(void)

{
  bool bVar1;
  char cVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  char *pcVar7;
  uint uVar8;
  int iVar9;
  undefined4 *puVar10;
  int *piVar11;
  int *piVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  char cStack_cd;
  
  puVar13 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x6f,PTR_s__s_004c1a50 + 0x4304);
  piVar11 = (int *)&DAT_0000011a;
  pcVar14 = *(code **)(puVar13 + 0x3127ec);
  uVar8 = *(int *)(puVar13 + 0x312038) + 0x3a14;
  (*pcVar14)(uVar8,0x11a,*(int *)(puVar13 + 0x31280c) + 0x4230);
  if (uVar8 < 0x40000000) {
    uVar3 = (**(code **)(pcVar14 + 0x312130))(uVar8 << 2);
    (**(code **)(pcVar14 + 0x3169f0))(uVar3,0,uVar8 << 2);
    return;
  }
  pcVar14 = *(code **)(pcVar14 + 0x312848);
  (*pcVar14)();
  iVar4 = *piVar11;
  pcVar6 = *(char **)(uVar8 + 0x30);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar14 + 0x31276c);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(uint *)(pcVar6 + 8) = uVar8;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar14 + 0x31276c) + 0x42f0;
    (**(code **)(pcVar14 + 0x31274c))(*(int *)(pcVar14 + 0x311f98) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar15 = *(code **)(pcVar14 + 0x31274c);
  iVar9 = *(int *)(pcVar14 + 0x311f98) + -0x7f8;
  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x38);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar15 + 0x3126d8);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar15 + 0x3126d8) + 0x42f0;
    (**(code **)(pcVar15 + 0x3126b8))(*(int *)(pcVar15 + 0x311f04) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar14 = *(code **)(pcVar15 + 0x3126b8);
  iVar9 = *(int *)(pcVar15 + 0x311f04) + -0x7f8;
  (*pcVar14)(iVar9,0x7c,iVar4 + 0x42e4);
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x30);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar4 + 1;
    if (cVar2 != '\0') {
      return;
    }
    iVar4 = *(int *)(pcVar14 + 0x312644);
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      return;
    }
  }
  else {
    iVar4 = *(int *)(pcVar14 + 0x312644) + 0x42f0;
    (**(code **)(pcVar14 + 0x312624))(*(int *)(pcVar14 + 0x311e70) + -0x7f8,0x12e,iVar4);
  }
  piVar11 = (int *)&DAT_0000007c;
  pcVar15 = *(code **)(pcVar14 + 0x312624);
  iVar9 = *(int *)(pcVar14 + 0x311e70) + -0x7f8;
  (*pcVar15)(iVar9,0x7c,iVar4 + 0x42e4);
  cStack_cd = (char)pcVar15 + -0x60;
  iVar4 = *piVar11;
  pcVar6 = *(char **)(iVar9 + 0x2c);
  if (iVar4 < 4) {
    cVar2 = *pcVar6;
    iVar5 = iVar4 + 1;
    piVar11[iVar4 + 1] = (int)pcVar6;
    *piVar11 = iVar5;
    if (cVar2 != '\0') {
LAB_001af4e4:
      pcVar6 = *(char **)(iVar9 + 0x30);
      if (pcVar6 != (char *)0x0) {
        bVar1 = iVar5 == 4;
        iVar5 = iVar4 + 2;
        if (bVar1) goto LAB_001af570;
        cVar2 = *pcVar6;
        piVar11[iVar4 + 2] = (int)pcVar6;
        *piVar11 = iVar5;
        if (cVar2 == '\0') {
          iVar4 = *(int *)(pcVar15 + 0x3125b0);
          if (*(int *)(pcVar6 + 8) != 0) goto LAB_001af590;
          *(int *)(pcVar6 + 8) = iVar9;
        }
      }
      pcVar7 = *(char **)(iVar9 + 0x34);
      if (iVar5 != 4) {
        cVar2 = *pcVar7;
        piVar11[iVar5 + 1] = (int)pcVar7;
        *piVar11 = iVar5 + 1;
        if (cVar2 != '\0') {
          return;
        }
        iVar4 = *(int *)(pcVar15 + 0x3125b0);
        pcVar6 = (char *)0x0;
        if (*(int *)(pcVar7 + 8) == 0) {
          *(int *)(pcVar7 + 8) = iVar9;
          return;
        }
        goto LAB_001af590;
      }
      goto LAB_001af570;
    }
    if (*(int *)(pcVar6 + 8) == 0) {
      *(int *)(pcVar6 + 8) = iVar9;
      goto LAB_001af4e4;
    }
  }
  else {
LAB_001af570:
    (**(code **)(pcVar15 + 0x312590))
              (*(int *)(pcVar15 + 0x311ddc) + -0x7f8,0x12e,*(int *)(pcVar15 + 0x3125b0) + 0x42f0);
  }
  iVar4 = *(int *)(pcVar15 + 0x3125b0);
LAB_001af590:
  pcVar14 = *(code **)(pcVar15 + 0x312590);
  iVar4 = iVar4 + 0x42e4;
  puVar10 = (undefined4 *)(*(int *)(pcVar15 + 0x311ddc) + -0x7f8);
  (*pcVar14)(puVar10,0x7c);
  uVar3 = *puVar10;
  iVar9 = (**(code **)(pcVar14 + 0x311e00))(0x18);
  *(undefined4 *)(iVar9 + 0xc) = 0;
  *(undefined4 *)(iVar9 + 8) = 0;
  *(char **)(iVar9 + 0x14) = pcVar6;
  pcVar15 = *(code **)(pcVar14 + 0x3126d8);
  *(int *)(iVar9 + 0x10) = iVar4;
  (*pcVar15)(iVar9,uVar3);
  piVar12 = *(int **)(pcVar14 + 0x312b34);
  piVar11 = *(int **)(pcVar14 + 0x312b38);
  puVar10[2] = puVar10[2] + 1;
  iVar5 = *piVar12;
  iVar9 = *piVar11;
  puVar10[7] = pcVar6;
  puVar10[6] = iVar4;
  puVar10[3] = *puVar10;
  *(char *)(puVar10 + 4) = cStack_cd;
  *piVar12 = iVar5 + 1;
  *piVar11 = iVar9 + 1;
  return;
}

