
int do_assignment_no_expand(char *string)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  undefined1 *puVar5;
  undefined4 *puVar6;
  byte bVar7;
  byte *pbVar8;
  byte *pbVar9;
  undefined *puVar10;
  code *pcVar11;
  WORD_DESC td;
  
  puVar10 = PTR___stack_chk_guard_0015858c;
  iVar1 = *(int *)PTR___stack_chk_guard_0015858c;
  td.flags = 4;
  td.word = string;
  iVar2 = do_assignment_internal(&td,0);
  if (iVar1 == *(int *)puVar10) {
    return iVar2;
  }
  puVar10 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  **(int **)(puVar10 + 0xd7704) = iVar1;
  if (iVar1 == 0) {
    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);
    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;
    **(undefined4 **)(puVar10 + 0xd7774) = 0;
LAB_0007fd30:
    **(undefined4 **)(puVar10 + 0xd7730) = 0;
    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);
    bVar7 = *pbVar9;
  }
  else {
    pbVar9 = *(byte **)(iVar1 + 4);
    if (pbVar9 == (byte *)0x0) {
      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);
      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;
      **(undefined4 **)(puVar10 + 0xd7774) = 1;
      goto LAB_0007fd30;
    }
    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;
    **(undefined4 **)(puVar10 + 0xd7774) = 1;
    if (*pbVar9 != 0) goto LAB_0007fd30;
    **(undefined4 **)(puVar10 + 0xd7730) = 1;
    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);
    bVar7 = *pbVar9;
  }
  if (bVar7 == 0) {
    if (**(int **)(puVar10 + 0xd6f70) == 0) {
      pcVar11 = *(code **)(puVar10 + 0xd8928);
      goto LAB_0007fc38;
    }
    bVar7 = *pbVar9;
  }
  else {
    iVar1 = *(int *)(puVar10 + 0xd76e4);
    pbVar8 = pbVar9;
    do {
      pbVar8 = pbVar8 + 1;
      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;
      if (pbVar8 == (byte *)0x0) break;
      bVar7 = *pbVar8;
    } while (bVar7 != 0);
    pcVar11 = *(code **)(puVar10 + 0xd8928);
    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {
LAB_0007fc38:
      uVar3 = (*pcVar11)();
      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);
      uVar4 = (**(code **)(puVar10 + 0xd8928))();
      if (uVar4 < 2) {
        uVar3 = 1;
        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);
      }
      else {
        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);
        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);
      }
      *puVar6 = uVar3;
      goto LAB_0007fc88;
    }
  }
  **(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0);
LAB_0007fc88:
  puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);
  if (**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc) {
    puVar6 = (undefined4 *)
             (**(code **)(puVar10 + 0xd88c4))
                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),
                        **(int **)(puVar10 + 0xd76dc),0x10);
  }
  else {
    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);
    puVar5[1] = 0;
    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);
    *puVar6 = 1;
  }
  return (int)puVar6;
}



void do_assignment_no_expand(undefined4 param_1)

{
  undefined4 uVar1;
  uint uVar2;
  undefined1 *puVar3;
  byte bVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  int iVar7;
  byte *pbVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 local_14;
  undefined4 local_10;
  int local_c;
  
  puVar9 = PTR___stack_chk_guard_0015858c;
  local_c = *(int *)PTR___stack_chk_guard_0015858c;
  local_10 = 4;
  local_14 = param_1;
  FUN_0007f1ec(&local_14,0);
  if (local_c == *(int *)puVar9) {
    return;
  }
  iVar7 = local_c;
  puVar9 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  **(int **)(puVar9 + 0xd7704) = iVar7;
  if (iVar7 == 0) {
    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);
    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
    **(undefined4 **)(puVar9 + 0xd7774) = 0;
LAB_0007fd30:
    **(undefined4 **)(puVar9 + 0xd7730) = 0;
    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);
    bVar4 = *pbVar8;
  }
  else {
    pbVar8 = *(byte **)(iVar7 + 4);
    if (pbVar8 == (byte *)0x0) {
      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);
      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
      **(undefined4 **)(puVar9 + 0xd7774) = 1;
      goto LAB_0007fd30;
    }
    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
    **(undefined4 **)(puVar9 + 0xd7774) = 1;
    if (*pbVar8 != 0) goto LAB_0007fd30;
    **(undefined4 **)(puVar9 + 0xd7730) = 1;
    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);
    bVar4 = *pbVar8;
  }
  if (bVar4 == 0) {
    if (**(int **)(puVar9 + 0xd6f70) == 0) {
      pcVar10 = *(code **)(puVar9 + 0xd8928);
      goto LAB_0007fc38;
    }
    bVar4 = *pbVar8;
  }
  else {
    iVar7 = *(int *)(puVar9 + 0xd76e4);
    pbVar6 = pbVar8;
    do {
      pbVar6 = pbVar6 + 1;
      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;
      if (pbVar6 == (byte *)0x0) break;
      bVar4 = *pbVar6;
    } while (bVar4 != 0);
    pcVar10 = *(code **)(puVar9 + 0xd8928);
    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {
LAB_0007fc38:
      uVar1 = (*pcVar10)();
      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);
      uVar2 = (**(code **)(puVar9 + 0xd8928))();
      if (uVar2 < 2) {
        uVar1 = 1;
        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);
      }
      else {
        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);
        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);
      }
      *puVar5 = uVar1;
      goto LAB_0007fc88;
    }
  }
  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);
LAB_0007fc88:
  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);
  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {
    (**(code **)(puVar9 + 0xd88c4))
              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),
               **(int **)(puVar9 + 0xd76dc),0x10);
  }
  else {
    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);
    puVar3[1] = 0;
    **(undefined4 **)(puVar9 + 0xd76dc) = 1;
  }
  return;
}


lui gp,0xe
addiu gp,gp,-0x1600
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
lw s0,-0x5fb4(gp)
lw v0,0x0(s0)
sw v0,0x24(sp)
li v0,0x4
sw v0,0x20(sp)
sw a0,0x1c(sp)
or a1,zero,zero
addiu a0,sp,0x1c
lw t9,-0x727c(gp)
addiu t9,t9,-0xe14
bal 0x0007f1ec
_nop
lw gp,0x10(sp)
lw a0,0x24(sp)
lw v1,0x0(s0)
bne a0,v1,0x0007fbac
_lw ra,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x30
lw t9,-0x6004(gp)
jalr t9
_nop
(translation_unit "void do_assignment_no_expand(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}\n\n" (function_definition "void do_assignment_no_expand(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" primitive_type (function_declarator "do_assignment_no_expand(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_0015858c;" (assignment_expression "puVar9 = PTR___stack_chk_guard_0015858c" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015858c" * (cast_expression "(int *)PTR___stack_chk_guard_0015858c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_10 = 4;" (assignment_expression "local_10 = 4" identifier = number_literal) ;) (expression_statement "local_14 = param_1;" (assignment_expression "local_14 = param_1" identifier = identifier) ;) (expression_statement "FUN_0007f1ec(&local_14,0);" (call_expression "FUN_0007f1ec(&local_14,0)" identifier (argument_list "(&local_14,0)" ( (pointer_expression "&local_14" & identifier) , number_literal ))) ;) (if_statement "if (local_c == *(int *)puVar9) {\n    return;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar9)" ( (binary_expression "local_c == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "**(int **)(puVar9 + 0xd7704) = iVar7;" (assignment_expression "**(int **)(puVar9 + 0xd7704) = iVar7" (pointer_expression "**(int **)(puVar9 + 0xd7704)" * (pointer_expression "*(int **)(puVar9 + 0xd7704)" * (cast_expression "(int **)(puVar9 + 0xd7704)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7704)" ( (binary_expression "puVar9 + 0xd7704" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" { (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" * (cast_expression "(int *)(puVar9 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd6a9c)" ( (binary_expression "puVar9 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (labeled_statement "LAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;" statement_identifier : (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7730)" ( (binary_expression "puVar9 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;)) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" ( (pointer_expression "**(code **)(puVar9 + 0xd8844)" * (pointer_expression "*(code **)(puVar9 + 0xd8844)" * (cast_expression "(code **)(puVar9 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8844)" ( (binary_expression "puVar9 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) (else_clause "else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" else (compound_statement "{\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" { (expression_statement "pbVar8 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar8 = *(byte **)(iVar7 + 4)" identifier = (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" { (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" * (cast_expression "(int *)(puVar9 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd6a9c)" ( (binary_expression "puVar9 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;) })) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (if_statement "if (*pbVar8 != 0) goto LAB_0007fd30;" if (parenthesized_expression "(*pbVar8 != 0)" ( (binary_expression "*pbVar8 != 0" (pointer_expression "*pbVar8" * identifier) != number_literal) )) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;)) (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7730)" ( (binary_expression "puVar9 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" ( (pointer_expression "**(code **)(puVar9 + 0xd8844)" * (pointer_expression "*(code **)(puVar9 + 0xd8844)" * (cast_expression "(code **)(puVar9 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8844)" ( (binary_expression "puVar9 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }))) (if_statement "if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }" { (if_statement "if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" if (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" * (pointer_expression "*(int **)(puVar9 + 0xd6f70)" * (cast_expression "(int **)(puVar9 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd6f70)" ( (binary_expression "puVar9 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" { (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0007fc38;" goto statement_identifier ;) })) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) (else_clause "else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" else (compound_statement "{\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" { (expression_statement "iVar7 = *(int *)(puVar9 + 0xd76e4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0xd76e4)" identifier = (pointer_expression "*(int *)(puVar9 + 0xd76e4)" * (cast_expression "(int *)(puVar9 + 0xd76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" identifier = identifier) ;) (do_statement "do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);" do (compound_statement "{\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    }" { (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar7 + (uint)bVar4) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + (uint)bVar4) = 1" (pointer_expression "*(undefined1 *)(iVar7 + (uint)bVar4)" * (cast_expression "(undefined1 *)(iVar7 + (uint)bVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + (uint)bVar4)" ( (binary_expression "iVar7 + (uint)bVar4" identifier + (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) (if_statement "if (pbVar6 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) }) while (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) ;) (if_statement "if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" if (parenthesized_expression "((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0'))" ( (binary_expression "(**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')" (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" * (pointer_expression "*(int **)(puVar9 + 0xd6f70)" * (cast_expression "(int **)(puVar9 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd6f70)" ( (binary_expression "puVar9 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) || (parenthesized_expression "(bVar4 = *pbVar8, (char)bVar4 < '\0')" ( (comma_expression "bVar4 = *pbVar8, (char)bVar4 < '\0'" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) , (binary_expression "(char)bVar4 < '\0'" (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" { (labeled_statement "LAB_0007fc38:\n      uVar1 = (*pcVar10)();" statement_identifier : (expression_statement "uVar1 = (*pcVar10)();" (assignment_expression "uVar1 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" identifier = (call_expression "(**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd87e4))" ( (pointer_expression "**(code **)(puVar9 + 0xd87e4)" * (pointer_expression "*(code **)(puVar9 + 0xd87e4)" * (cast_expression "(code **)(puVar9 + 0xd87e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd87e4)" ( (binary_expression "puVar9 + 0xd87e4" identifier + number_literal) ))))) )) (argument_list "(pbVar8,uVar1)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = (**(code **)(puVar9 + 0xd8928))();" (assignment_expression "uVar2 = (**(code **)(puVar9 + 0xd8928))()" identifier = (call_expression "(**(code **)(puVar9 + 0xd8928))()" (parenthesized_expression "(**(code **)(puVar9 + 0xd8928))" ( (pointer_expression "**(code **)(puVar9 + 0xd8928)" * (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" { (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" else (compound_statement "{\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" { (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" identifier = (call_expression "(**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8940))" ( (pointer_expression "**(code **)(puVar9 + 0xd8940)" * (pointer_expression "*(code **)(puVar9 + 0xd8940)" * (cast_expression "(code **)(puVar9 + 0xd8940)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8940)" ( (binary_expression "puVar9 + 0xd8940" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" ( (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) , identifier )))) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) ;) }))) (expression_statement "*puVar5 = uVar1;" (assignment_expression "*puVar5 = uVar1" (pointer_expression "*puVar5" * identifier) = identifier) ;) (goto_statement "goto LAB_0007fc88;" goto statement_identifier ;) })) }))) (expression_statement "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);" (assignment_expression "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0)" (pointer_expression "**(uint **)(puVar9 + 0xd76dc)" * (pointer_expression "*(uint **)(puVar9 + 0xd76dc)" * (cast_expression "(uint **)(puVar9 + 0xd76dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) = (call_expression "(uint)(bVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )))) ;) (labeled_statement "LAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" statement_identifier : (expression_statement "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" (assignment_expression "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + 0xd76e0)" * (cast_expression "(undefined1 **)(puVar9 + 0xd76e0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76e0)" ( (binary_expression "puVar9 + 0xd76e0" identifier + number_literal) ))))) ;)) (if_statement "if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" if (parenthesized_expression "(**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc)" ( (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc" (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U" (pointer_expression "**(int **)(puVar9 + 0xd76dc)" * (pointer_expression "*(int **)(puVar9 + 0xd76dc)" * (cast_expression "(int **)(puVar9 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) - number_literal) < number_literal) )) (compound_statement "{\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }" { (expression_statement "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);" (call_expression "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" (parenthesized_expression "(**(code **)(puVar9 + 0xd88c4))" ( (pointer_expression "**(code **)(puVar9 + 0xd88c4)" * (pointer_expression "*(code **)(puVar9 + 0xd88c4)" * (cast_expression "(code **)(puVar9 + 0xd88c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd88c4)" ( (binary_expression "puVar9 + 0xd88c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e0)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e0)" ( (binary_expression "puVar9 + 0xd76e0" identifier + number_literal) )))) , (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) , (pointer_expression "**(int **)(puVar9 + 0xd76dc)" * (pointer_expression "*(int **)(puVar9 + 0xd76dc)" * (cast_expression "(int **)(puVar9 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) , number_literal ))) ;) }) (else_clause "else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" else (compound_statement "{\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" { (expression_statement "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);" (assignment_expression "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) )))))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76dc) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76dc) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76dc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) = number_literal) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "int do_assignment_no_expand(char *string)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  byte bVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  WORD_DESC td;\n  \n  puVar10 = PTR___stack_chk_guard_0015858c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0015858c;\n  td.flags = 4;\n  td.word = string;\n  iVar2 = do_assignment_internal(&td,0);\n  if (iVar1 == *(int *)puVar10) {\n    return iVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar10 + 0xd7704) = iVar1;\n  if (iVar1 == 0) {\n    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  else {\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  if (bVar7 == 0) {\n    if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar7 = *pbVar9;\n  }\n  else {\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0);\nLAB_0007fc88:\n  puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);\n  if (**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc) {\n    puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }\n  return (int)puVar6;\n}\n\n" (function_definition "int do_assignment_no_expand(char *string)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  byte bVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  WORD_DESC td;\n  \n  puVar10 = PTR___stack_chk_guard_0015858c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0015858c;\n  td.flags = 4;\n  td.word = string;\n  iVar2 = do_assignment_internal(&td,0);\n  if (iVar1 == *(int *)puVar10) {\n    return iVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar10 + 0xd7704) = iVar1;\n  if (iVar1 == 0) {\n    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  else {\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  if (bVar7 == 0) {\n    if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar7 = *pbVar9;\n  }\n  else {\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0);\nLAB_0007fc88:\n  puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);\n  if (**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc) {\n    puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }\n  return (int)puVar6;\n}" primitive_type (function_declarator "do_assignment_no_expand(char *string)" identifier (parameter_list "(char *string)" ( (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  byte bVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  WORD_DESC td;\n  \n  puVar10 = PTR___stack_chk_guard_0015858c;\n  iVar1 = *(int *)PTR___stack_chk_guard_0015858c;\n  td.flags = 4;\n  td.word = string;\n  iVar2 = do_assignment_internal(&td,0);\n  if (iVar1 == *(int *)puVar10) {\n    return iVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar10 + 0xd7704) = iVar1;\n  if (iVar1 == 0) {\n    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  else {\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  if (bVar7 == 0) {\n    if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar7 = *pbVar9;\n  }\n  else {\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0);\nLAB_0007fc88:\n  puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);\n  if (**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc) {\n    puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }\n  return (int)puVar6;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "WORD_DESC td;" type_identifier identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_0015858c;" (assignment_expression "puVar10 = PTR___stack_chk_guard_0015858c" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_0015858c;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015858c" * (cast_expression "(int *)PTR___stack_chk_guard_0015858c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "td.flags = 4;" (assignment_expression "td.flags = 4" (field_expression "td.flags" identifier . field_identifier) = number_literal) ;) (expression_statement "td.word = string;" (assignment_expression "td.word = string" (field_expression "td.word" identifier . field_identifier) = identifier) ;) (expression_statement "iVar2 = do_assignment_internal(&td,0);" (assignment_expression "iVar2 = do_assignment_internal(&td,0)" identifier = (call_expression "do_assignment_internal(&td,0)" identifier (argument_list "(&td,0)" ( (pointer_expression "&td" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 == *(int *)puVar10) {\n    return iVar2;\n  }" if (parenthesized_expression "(iVar1 == *(int *)puVar10)" ( (binary_expression "iVar1 == *(int *)puVar10" identifier == (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "puVar10 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "**(int **)(puVar10 + 0xd7704) = iVar1;" (assignment_expression "**(int **)(puVar10 + 0xd7704) = iVar1" (pointer_expression "**(int **)(puVar10 + 0xd7704)" * (pointer_expression "*(int **)(puVar10 + 0xd7704)" * (cast_expression "(int **)(puVar10 + 0xd7704)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7704)" ( (binary_expression "puVar10 + 0xd7704" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (iVar1 == 0) {\n    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }\n  else {\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }" { (expression_statement "pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar10 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar10 + 0xd6a9c)" * (cast_expression "(int *)(puVar10 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd6a9c)" ( (binary_expression "puVar10 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9" (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar10 + 0xd7774) = 0;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd7774) = 0" (pointer_expression "**(undefined4 **)(puVar10 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar10 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7774)" ( (binary_expression "puVar10 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (labeled_statement "LAB_0007fd30:\n    **(undefined4 **)(puVar10 + 0xd7730) = 0;" statement_identifier : (expression_statement "**(undefined4 **)(puVar10 + 0xd7730) = 0;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd7730) = 0" (pointer_expression "**(undefined4 **)(puVar10 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar10 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7730)" ( (binary_expression "puVar10 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;)) (expression_statement "(**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar10 + 0xd8844))" ( (pointer_expression "**(code **)(puVar10 + 0xd8844)" * (pointer_expression "*(code **)(puVar10 + 0xd8844)" * (cast_expression "(code **)(puVar10 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8844)" ( (binary_expression "puVar10 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar10 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar10 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd76e4)" ( (binary_expression "puVar10 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) }) (else_clause "else {\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }" else (compound_statement "{\n    pbVar9 = *(byte **)(iVar1 + 4);\n    if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n    **(undefined4 **)(puVar10 + 0xd7774) = 1;\n    if (*pbVar9 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar10 + 0xd7730) = 1;\n    (**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);\n    bVar7 = *pbVar9;\n  }" { (expression_statement "pbVar9 = *(byte **)(iVar1 + 4);" (assignment_expression "pbVar9 = *(byte **)(iVar1 + 4)" identifier = (pointer_expression "*(byte **)(iVar1 + 4)" * (cast_expression "(byte **)(iVar1 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pbVar9 == (byte *)0x0) {\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" if (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;\n      **(undefined4 **)(puVar10 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" { (expression_statement "pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar9 = (byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar10 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar10 + 0xd6a9c)" * (cast_expression "(int *)(puVar10 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd6a9c)" ( (binary_expression "puVar10 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9" (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar10 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar10 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar10 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7774)" ( (binary_expression "puVar10 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;) })) (expression_statement "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd76cc) = pbVar9" (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar10 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar10 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar10 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7774)" ( (binary_expression "puVar10 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (if_statement "if (*pbVar9 != 0) goto LAB_0007fd30;" if (parenthesized_expression "(*pbVar9 != 0)" ( (binary_expression "*pbVar9 != 0" (pointer_expression "*pbVar9" * identifier) != number_literal) )) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;)) (expression_statement "**(undefined4 **)(puVar10 + 0xd7730) = 1;" (assignment_expression "**(undefined4 **)(puVar10 + 0xd7730) = 1" (pointer_expression "**(undefined4 **)(puVar10 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar10 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd7730)" ( (binary_expression "puVar10 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "(**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar10 + 0xd8844))(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar10 + 0xd8844))" ( (pointer_expression "**(code **)(puVar10 + 0xd8844)" * (pointer_expression "*(code **)(puVar10 + 0xd8844)" * (cast_expression "(code **)(puVar10 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8844)" ( (binary_expression "puVar10 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar10 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar10 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd76e4)" ( (binary_expression "puVar10 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) }))) (if_statement "if (bVar7 == 0) {\n    if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar7 = *pbVar9;\n  }\n  else {\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar7 = *pbVar9;\n  }" { (if_statement "if (**(int **)(puVar10 + 0xd6f70) == 0) {\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }" if (parenthesized_expression "(**(int **)(puVar10 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar10 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar10 + 0xd6f70)" * (pointer_expression "*(int **)(puVar10 + 0xd6f70)" * (cast_expression "(int **)(puVar10 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd6f70)" ( (binary_expression "puVar10 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n      pcVar11 = *(code **)(puVar10 + 0xd8928);\n      goto LAB_0007fc38;\n    }" { (expression_statement "pcVar11 = *(code **)(puVar10 + 0xd8928);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar10 + 0xd8928)" * (cast_expression "(code **)(puVar10 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8928)" ( (binary_expression "puVar10 + 0xd8928" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0007fc38;" goto statement_identifier ;) })) (expression_statement "bVar7 = *pbVar9;" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) }) (else_clause "else {\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }" else (compound_statement "{\n    iVar1 = *(int *)(puVar10 + 0xd76e4);\n    pbVar8 = pbVar9;\n    do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);\n    pcVar11 = *(code **)(puVar10 + 0xd8928);\n    if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }\n  }" { (expression_statement "iVar1 = *(int *)(puVar10 + 0xd76e4);" (assignment_expression "iVar1 = *(int *)(puVar10 + 0xd76e4)" identifier = (pointer_expression "*(int *)(puVar10 + 0xd76e4)" * (cast_expression "(int *)(puVar10 + 0xd76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd76e4)" ( (binary_expression "puVar10 + 0xd76e4" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) (do_statement "do {\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    } while (bVar7 != 0);" do (compound_statement "{\n      pbVar8 = pbVar8 + 1;\n      *(undefined1 *)(iVar1 + (uint)bVar7) = 1;\n      if (pbVar8 == (byte *)0x0) break;\n      bVar7 = *pbVar8;\n    }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar1 + (uint)bVar7) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + (uint)bVar7) = 1" (pointer_expression "*(undefined1 *)(iVar1 + (uint)bVar7)" * (cast_expression "(undefined1 *)(iVar1 + (uint)bVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + (uint)bVar7)" ( (binary_expression "iVar1 + (uint)bVar7" identifier + (cast_expression "(uint)bVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) (if_statement "if (pbVar8 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar7 = *pbVar8;" (assignment_expression "bVar7 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) while (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar11 = *(code **)(puVar10 + 0xd8928);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar10 + 0xd8928)" * (cast_expression "(code **)(puVar10 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8928)" ( (binary_expression "puVar10 + 0xd8928" identifier + number_literal) ))))) ;) (if_statement "if ((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')) {\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }" if (parenthesized_expression "((**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0'))" ( (binary_expression "(**(int **)(puVar10 + 0xd6f70) == 0) || (bVar7 = *pbVar9, (char)bVar7 < '\0')" (parenthesized_expression "(**(int **)(puVar10 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar10 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar10 + 0xd6f70)" * (pointer_expression "*(int **)(puVar10 + 0xd6f70)" * (cast_expression "(int **)(puVar10 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd6f70)" ( (binary_expression "puVar10 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) || (parenthesized_expression "(bVar7 = *pbVar9, (char)bVar7 < '\0')" ( (comma_expression "bVar7 = *pbVar9, (char)bVar7 < '\0'" (assignment_expression "bVar7 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) , (binary_expression "(char)bVar7 < '\0'" (cast_expression "(char)bVar7" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\nLAB_0007fc38:\n      uVar3 = (*pcVar11)();\n      uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);\n      uVar4 = (**(code **)(puVar10 + 0xd8928))();\n      if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      *puVar6 = uVar3;\n      goto LAB_0007fc88;\n    }" { (labeled_statement "LAB_0007fc38:\n      uVar3 = (*pcVar11)();" statement_identifier : (expression_statement "uVar3 = (*pcVar11)();" (assignment_expression "uVar3 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3);" (assignment_expression "uVar3 = (**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3)" identifier = (call_expression "(**(code **)(puVar10 + 0xd87e4))(pbVar9,uVar3)" (parenthesized_expression "(**(code **)(puVar10 + 0xd87e4))" ( (pointer_expression "**(code **)(puVar10 + 0xd87e4)" * (pointer_expression "*(code **)(puVar10 + 0xd87e4)" * (cast_expression "(code **)(puVar10 + 0xd87e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd87e4)" ( (binary_expression "puVar10 + 0xd87e4" identifier + number_literal) ))))) )) (argument_list "(pbVar9,uVar3)" ( identifier , identifier )))) ;) (expression_statement "uVar4 = (**(code **)(puVar10 + 0xd8928))();" (assignment_expression "uVar4 = (**(code **)(puVar10 + 0xd8928))()" identifier = (call_expression "(**(code **)(puVar10 + 0xd8928))()" (parenthesized_expression "(**(code **)(puVar10 + 0xd8928))" ( (pointer_expression "**(code **)(puVar10 + 0xd8928)" * (pointer_expression "*(code **)(puVar10 + 0xd8928)" * (cast_expression "(code **)(puVar10 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8928)" ( (binary_expression "puVar10 + 0xd8928" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar4 < 2) {\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }\n      else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n        uVar3 = 1;\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }" else (compound_statement "{\n        uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);\n        puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n      }" { (expression_statement "uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3);" (assignment_expression "uVar3 = (**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3)" identifier = (call_expression "(**(code **)(puVar10 + 0xd8940))(**(undefined4 **)(puVar10 + 0xd76cc),uVar3)" (parenthesized_expression "(**(code **)(puVar10 + 0xd8940))" ( (pointer_expression "**(code **)(puVar10 + 0xd8940)" * (pointer_expression "*(code **)(puVar10 + 0xd8940)" * (cast_expression "(code **)(puVar10 + 0xd8940)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd8940)" ( (binary_expression "puVar10 + 0xd8940" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar10 + 0xd76cc),uVar3)" ( (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) ))))) , identifier )))) ;) (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) ;) }))) (expression_statement "*puVar6 = uVar3;" (assignment_expression "*puVar6 = uVar3" (pointer_expression "*puVar6" * identifier) = identifier) ;) (goto_statement "goto LAB_0007fc88;" goto statement_identifier ;) })) }))) (expression_statement "**(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0);" (assignment_expression "**(uint **)(puVar10 + 0xd76dc) = (uint)(bVar7 != 0)" (pointer_expression "**(uint **)(puVar10 + 0xd76dc)" * (pointer_expression "*(uint **)(puVar10 + 0xd76dc)" * (cast_expression "(uint **)(puVar10 + 0xd76dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) = (call_expression "(uint)(bVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )))) ;) (labeled_statement "LAB_0007fc88:\n  puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);" statement_identifier : (expression_statement "puVar5 = *(undefined1 **)(puVar10 + 0xd76e0);" (assignment_expression "puVar5 = *(undefined1 **)(puVar10 + 0xd76e0)" identifier = (pointer_expression "*(undefined1 **)(puVar10 + 0xd76e0)" * (cast_expression "(undefined1 **)(puVar10 + 0xd76e0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76e0)" ( (binary_expression "puVar10 + 0xd76e0" identifier + number_literal) ))))) ;)) (if_statement "if (**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc) {\n    puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }" if (parenthesized_expression "(**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc)" ( (binary_expression "**(int **)(puVar10 + 0xd76dc) - 2U < 0xfffffffc" (binary_expression "**(int **)(puVar10 + 0xd76dc) - 2U" (pointer_expression "**(int **)(puVar10 + 0xd76dc)" * (pointer_expression "*(int **)(puVar10 + 0xd76dc)" * (cast_expression "(int **)(puVar10 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) - number_literal) < number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);\n  }" { (expression_statement "puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10);" (assignment_expression "puVar6 = (undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10)" identifier = (cast_expression "(undefined4 *)\n             (**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar10 + 0xd88c4))\n                       (*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10)" (parenthesized_expression "(**(code **)(puVar10 + 0xd88c4))" ( (pointer_expression "**(code **)(puVar10 + 0xd88c4)" * (pointer_expression "*(code **)(puVar10 + 0xd88c4)" * (cast_expression "(code **)(puVar10 + 0xd88c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd88c4)" ( (binary_expression "puVar10 + 0xd88c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0xd76e0),**(undefined4 **)(puVar10 + 0xd76cc),\n                        **(int **)(puVar10 + 0xd76dc),0x10)" ( (pointer_expression "*(undefined4 *)(puVar10 + 0xd76e0)" * (cast_expression "(undefined4 *)(puVar10 + 0xd76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0xd76e0)" ( (binary_expression "puVar10 + 0xd76e0" identifier + number_literal) )))) , (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) ))))) , (pointer_expression "**(int **)(puVar10 + 0xd76dc)" * (pointer_expression "*(int **)(puVar10 + 0xd76dc)" * (cast_expression "(int **)(puVar10 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) , number_literal ))))) ;) }) (else_clause "else {\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }" else (compound_statement "{\n    *puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);\n    puVar5[1] = 0;\n    puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);\n    *puVar6 = 1;\n  }" { (expression_statement "*puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc);" (assignment_expression "*puVar5 = *(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc)" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined1 *)**(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar10 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar10 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76cc)" ( (binary_expression "puVar10 + 0xd76cc" identifier + number_literal) )))))))) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc);" (assignment_expression "puVar6 = *(undefined4 **)(puVar10 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar10 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar10 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0xd76dc)" ( (binary_expression "puVar10 + 0xd76dc" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 1;" (assignment_expression "*puVar6 = 1" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }))) (return_statement "return (int)puVar6;" return (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "void do_assignment_no_expand(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}\n\n" (function_definition "void do_assignment_no_expand(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" primitive_type (function_declarator "do_assignment_no_expand(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_0015858c;" (assignment_expression "puVar9 = PTR___stack_chk_guard_0015858c" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_0015858c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015858c" * (cast_expression "(int *)PTR___stack_chk_guard_0015858c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_10 = 4;" (assignment_expression "local_10 = 4" identifier = number_literal) ;) (expression_statement "local_14 = param_1;" (assignment_expression "local_14 = param_1" identifier = identifier) ;) (expression_statement "FUN_0007f1ec(&local_14,0);" (call_expression "FUN_0007f1ec(&local_14,0)" identifier (argument_list "(&local_14,0)" ( (pointer_expression "&local_14" & identifier) , number_literal ))) ;) (if_statement "if (local_c == *(int *)puVar9) {\n    return;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar9)" ( (binary_expression "local_c == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar9 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015853c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" * (cast_expression "(code *)PTR___stack_chk_fail_0015853c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "**(int **)(puVar9 + 0xd7704) = iVar7;" (assignment_expression "**(int **)(puVar9 + 0xd7704) = iVar7" (pointer_expression "**(int **)(puVar9 + 0xd7704)" * (pointer_expression "*(int **)(puVar9 + 0xd7704)" * (cast_expression "(int **)(puVar9 + 0xd7704)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7704)" ( (binary_expression "puVar9 + 0xd7704" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" { (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" * (cast_expression "(int *)(puVar9 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd6a9c)" ( (binary_expression "puVar9 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (labeled_statement "LAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;" statement_identifier : (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7730)" ( (binary_expression "puVar9 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;)) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" ( (pointer_expression "**(code **)(puVar9 + 0xd8844)" * (pointer_expression "*(code **)(puVar9 + 0xd8844)" * (cast_expression "(code **)(puVar9 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8844)" ( (binary_expression "puVar9 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) (else_clause "else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" else (compound_statement "{\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" { (expression_statement "pbVar8 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar8 = *(byte **)(iVar7 + 4)" identifier = (pointer_expression "*(byte **)(iVar7 + 4)" * (cast_expression "(byte **)(iVar7 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" { (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" identifier = (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" ( (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" * (cast_expression "(int *)(puVar9 + 0xd6a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd6a9c)" ( (binary_expression "puVar9 + 0xd6a9c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;) })) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7774)" ( (binary_expression "puVar9 + 0xd7774" identifier + number_literal) ))))) = number_literal) ;) (if_statement "if (*pbVar8 != 0) goto LAB_0007fd30;" if (parenthesized_expression "(*pbVar8 != 0)" ( (binary_expression "*pbVar8 != 0" (pointer_expression "*pbVar8" * identifier) != number_literal) )) (goto_statement "goto LAB_0007fd30;" goto statement_identifier ;)) (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" * (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd7730)" ( (binary_expression "puVar9 + 0xd7730" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" ( (pointer_expression "**(code **)(puVar9 + 0xd8844)" * (pointer_expression "*(code **)(puVar9 + 0xd8844)" * (cast_expression "(code **)(puVar9 + 0xd8844)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8844)" ( (binary_expression "puVar9 + 0xd8844" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }))) (if_statement "if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }" { (if_statement "if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" if (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" * (pointer_expression "*(int **)(puVar9 + 0xd6f70)" * (cast_expression "(int **)(puVar9 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd6f70)" ( (binary_expression "puVar9 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" { (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0007fc38;" goto statement_identifier ;) })) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) (else_clause "else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" else (compound_statement "{\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" { (expression_statement "iVar7 = *(int *)(puVar9 + 0xd76e4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0xd76e4)" identifier = (pointer_expression "*(int *)(puVar9 + 0xd76e4)" * (cast_expression "(int *)(puVar9 + 0xd76e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e4)" ( (binary_expression "puVar9 + 0xd76e4" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" identifier = identifier) ;) (do_statement "do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);" do (compound_statement "{\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    }" { (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar7 + (uint)bVar4) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + (uint)bVar4) = 1" (pointer_expression "*(undefined1 *)(iVar7 + (uint)bVar4)" * (cast_expression "(undefined1 *)(iVar7 + (uint)bVar4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + (uint)bVar4)" ( (binary_expression "iVar7 + (uint)bVar4" identifier + (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) (if_statement "if (pbVar6 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) }) while (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" identifier = (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) ;) (if_statement "if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" if (parenthesized_expression "((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0'))" ( (binary_expression "(**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')" (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" ( (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" * (pointer_expression "*(int **)(puVar9 + 0xd6f70)" * (cast_expression "(int **)(puVar9 + 0xd6f70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd6f70)" ( (binary_expression "puVar9 + 0xd6f70" identifier + number_literal) ))))) == number_literal) )) || (parenthesized_expression "(bVar4 = *pbVar8, (char)bVar4 < '\0')" ( (comma_expression "bVar4 = *pbVar8, (char)bVar4 < '\0'" (assignment_expression "bVar4 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) , (binary_expression "(char)bVar4 < '\0'" (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" { (labeled_statement "LAB_0007fc38:\n      uVar1 = (*pcVar10)();" statement_identifier : (expression_statement "uVar1 = (*pcVar10)();" (assignment_expression "uVar1 = (*pcVar10)()" identifier = (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" identifier = (call_expression "(**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd87e4))" ( (pointer_expression "**(code **)(puVar9 + 0xd87e4)" * (pointer_expression "*(code **)(puVar9 + 0xd87e4)" * (cast_expression "(code **)(puVar9 + 0xd87e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd87e4)" ( (binary_expression "puVar9 + 0xd87e4" identifier + number_literal) ))))) )) (argument_list "(pbVar8,uVar1)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = (**(code **)(puVar9 + 0xd8928))();" (assignment_expression "uVar2 = (**(code **)(puVar9 + 0xd8928))()" identifier = (call_expression "(**(code **)(puVar9 + 0xd8928))()" (parenthesized_expression "(**(code **)(puVar9 + 0xd8928))" ( (pointer_expression "**(code **)(puVar9 + 0xd8928)" * (pointer_expression "*(code **)(puVar9 + 0xd8928)" * (cast_expression "(code **)(puVar9 + 0xd8928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8928)" ( (binary_expression "puVar9 + 0xd8928" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" { (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" else (compound_statement "{\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" { (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" identifier = (call_expression "(**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8940))" ( (pointer_expression "**(code **)(puVar9 + 0xd8940)" * (pointer_expression "*(code **)(puVar9 + 0xd8940)" * (cast_expression "(code **)(puVar9 + 0xd8940)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd8940)" ( (binary_expression "puVar9 + 0xd8940" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" ( (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) , identifier )))) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" identifier = (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) ;) }))) (expression_statement "*puVar5 = uVar1;" (assignment_expression "*puVar5 = uVar1" (pointer_expression "*puVar5" * identifier) = identifier) ;) (goto_statement "goto LAB_0007fc88;" goto statement_identifier ;) })) }))) (expression_statement "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);" (assignment_expression "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0)" (pointer_expression "**(uint **)(puVar9 + 0xd76dc)" * (pointer_expression "*(uint **)(puVar9 + 0xd76dc)" * (cast_expression "(uint **)(puVar9 + 0xd76dc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) = (call_expression "(uint)(bVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )))) ;) (labeled_statement "LAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" statement_identifier : (expression_statement "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" (assignment_expression "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0)" identifier = (pointer_expression "*(undefined1 **)(puVar9 + 0xd76e0)" * (cast_expression "(undefined1 **)(puVar9 + 0xd76e0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76e0)" ( (binary_expression "puVar9 + 0xd76e0" identifier + number_literal) ))))) ;)) (if_statement "if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" if (parenthesized_expression "(**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc)" ( (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc" (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U" (pointer_expression "**(int **)(puVar9 + 0xd76dc)" * (pointer_expression "*(int **)(puVar9 + 0xd76dc)" * (cast_expression "(int **)(puVar9 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) - number_literal) < number_literal) )) (compound_statement "{\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }" { (expression_statement "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);" (call_expression "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" (parenthesized_expression "(**(code **)(puVar9 + 0xd88c4))" ( (pointer_expression "**(code **)(puVar9 + 0xd88c4)" * (pointer_expression "*(code **)(puVar9 + 0xd88c4)" * (cast_expression "(code **)(puVar9 + 0xd88c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd88c4)" ( (binary_expression "puVar9 + 0xd88c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" ( (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e0)" * (cast_expression "(undefined4 *)(puVar9 + 0xd76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xd76e0)" ( (binary_expression "puVar9 + 0xd76e0" identifier + number_literal) )))) , (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) ))))) , (pointer_expression "**(int **)(puVar9 + 0xd76dc)" * (pointer_expression "*(int **)(puVar9 + 0xd76dc)" * (cast_expression "(int **)(puVar9 + 0xd76dc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) , number_literal ))) ;) }) (else_clause "else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" else (compound_statement "{\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" { (expression_statement "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);" (assignment_expression "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76cc)" ( (binary_expression "puVar9 + 0xd76cc" identifier + number_literal) )))))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "**(undefined4 **)(puVar9 + 0xd76dc) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76dc) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76dc)" * (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" * (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xd76dc)" ( (binary_expression "puVar9 + 0xd76dc" identifier + number_literal) ))))) = number_literal) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence '))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) - LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = LIT) ;) }))) (return_statement return ;) })))
(function_definition "void do_assignment_no_expand(undefined4 param_1)\n\n{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "do_assignment_no_expand(undefined4 param_1)" (identifier "do_assignment_no_expand") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  byte bVar4;\n  undefined4 *puVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  puVar9 = PTR___stack_chk_guard_0015858c;\n  local_c = *(int *)PTR___stack_chk_guard_0015858c;\n  local_10 = 4;\n  local_14 = param_1;\n  FUN_0007f1ec(&local_14,0);\n  if (local_c == *(int *)puVar9) {\n    return;\n  }\n  iVar7 = local_c;\n  puVar9 = PTR___stack_chk_fail_0015853c;\n  (*(code *)PTR___stack_chk_fail_0015853c)();\n  **(int **)(puVar9 + 0xd7704) = iVar7;\n  if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }\n  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);\nLAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);\n  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "puVar9 = PTR___stack_chk_guard_0015858c;" (assignment_expression "puVar9 = PTR___stack_chk_guard_0015858c" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_guard_0015858c")) (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_0015858c;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_0015858c" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015858c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015858c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015858c")))) (; ";")) (expression_statement "local_10 = 4;" (assignment_expression "local_10 = 4" (identifier "local_10") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_14 = param_1;" (assignment_expression "local_14 = param_1" (identifier "local_14") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_0007f1ec(&local_14,0);" (call_expression "FUN_0007f1ec(&local_14,0)" (identifier "FUN_0007f1ec") (argument_list "(&local_14,0)" (( "(") (pointer_expression "&local_14" (& "&") (identifier "local_14")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_c == *(int *)puVar9) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_c == *(int *)puVar9)" (( "(") (binary_expression "local_c == *(int *)puVar9" (identifier "local_c") (== "==") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar7 = local_c;" (assignment_expression "iVar7 = local_c" (identifier "iVar7") (= "=") (identifier "local_c")) (; ";")) (expression_statement "puVar9 = PTR___stack_chk_fail_0015853c;" (assignment_expression "puVar9 = PTR___stack_chk_fail_0015853c" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_fail_0015853c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015853c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015853c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015853c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015853c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015853c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015853c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "**(int **)(puVar9 + 0xd7704) = iVar7;" (assignment_expression "**(int **)(puVar9 + 0xd7704) = iVar7" (pointer_expression "**(int **)(puVar9 + 0xd7704)" (* "*") (pointer_expression "*(int **)(puVar9 + 0xd7704)" (* "*") (cast_expression "(int **)(puVar9 + 0xd7704)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7704)" (( "(") (binary_expression "puVar9 + 0xd7704" (identifier "puVar9") (+ "+") (number_literal "0xd7704")) () ")"))))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }\n  else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 0;\nLAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" ({ "{") (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (( "(") (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" (* "*") (cast_expression "(int *)(puVar9 + 0xd6a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd6a9c)" (( "(") (binary_expression "puVar9 + 0xd6a9c" (identifier "puVar9") (+ "+") (number_literal "0xd6a9c")) () ")")))) (+ "+") (number_literal "-0x6ef8")) () ")")))) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")"))))) (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7774)" (( "(") (binary_expression "puVar9 + 0xd7774" (identifier "puVar9") (+ "+") (number_literal "0xd7774")) () ")"))))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0007fd30:\n    **(undefined4 **)(puVar9 + 0xd7730) = 0;" (statement_identifier "LAB_0007fd30") (: ":") (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 0;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 0" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7730)" (( "(") (binary_expression "puVar9 + 0xd7730" (identifier "puVar9") (+ "+") (number_literal "0xd7730")) () ")"))))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd8844)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd8844)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8844)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8844)" (( "(") (binary_expression "puVar9 + 0xd8844" (identifier "puVar9") (+ "+") (number_literal "0xd8844")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (( "(") (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" (* "*") (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd76e4)" (( "(") (binary_expression "puVar9 + 0xd76e4" (identifier "puVar9") (+ "+") (number_literal "0xd76e4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" (identifier "bVar4") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (; ";")) (} "}")) (else_clause "else {\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" (else "else") (compound_statement "{\n    pbVar8 = *(byte **)(iVar7 + 4);\n    if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }\n    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n    **(undefined4 **)(puVar9 + 0xd7774) = 1;\n    if (*pbVar8 != 0) goto LAB_0007fd30;\n    **(undefined4 **)(puVar9 + 0xd7730) = 1;\n    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);\n    bVar4 = *pbVar8;\n  }" ({ "{") (expression_statement "pbVar8 = *(byte **)(iVar7 + 4);" (assignment_expression "pbVar8 = *(byte **)(iVar7 + 4)" (identifier "pbVar8") (= "=") (pointer_expression "*(byte **)(iVar7 + 4)" (* "*") (cast_expression "(byte **)(iVar7 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (pbVar8 == (byte *)0x0) {\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" (if "if") (parenthesized_expression "(pbVar8 == (byte *)0x0)" (( "(") (binary_expression "pbVar8 == (byte *)0x0" (identifier "pbVar8") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);\n      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;\n      **(undefined4 **)(puVar9 + 0xd7774) = 1;\n      goto LAB_0007fd30;\n    }" ({ "{") (expression_statement "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);" (assignment_expression "pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8)" (( "(") (binary_expression "*(int *)(puVar9 + 0xd6a9c) + -0x6ef8" (pointer_expression "*(int *)(puVar9 + 0xd6a9c)" (* "*") (cast_expression "(int *)(puVar9 + 0xd6a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd6a9c)" (( "(") (binary_expression "puVar9 + 0xd6a9c" (identifier "puVar9") (+ "+") (number_literal "0xd6a9c")) () ")")))) (+ "+") (number_literal "-0x6ef8")) () ")")))) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")"))))) (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7774)" (( "(") (binary_expression "puVar9 + 0xd7774" (identifier "puVar9") (+ "+") (number_literal "0xd7774")) () ")"))))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0007fd30;" (goto "goto") (statement_identifier "LAB_0007fd30") (; ";")) (} "}"))) (expression_statement "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76cc) = pbVar8" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")"))))) (= "=") (identifier "pbVar8")) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd7774) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7774) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7774)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd7774)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd7774)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7774)" (( "(") (binary_expression "puVar9 + 0xd7774" (identifier "puVar9") (+ "+") (number_literal "0xd7774")) () ")"))))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (*pbVar8 != 0) goto LAB_0007fd30;" (if "if") (parenthesized_expression "(*pbVar8 != 0)" (( "(") (binary_expression "*pbVar8 != 0" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007fd30;" (goto "goto") (statement_identifier "LAB_0007fd30") (; ";"))) (expression_statement "**(undefined4 **)(puVar9 + 0xd7730) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd7730) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd7730)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd7730)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd7730)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd7730)" (( "(") (binary_expression "puVar9 + 0xd7730" (identifier "puVar9") (+ "+") (number_literal "0xd7730")) () ")"))))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);" (call_expression "(**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8844))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd8844)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd8844)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8844)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8844)" (( "(") (binary_expression "puVar9 + 0xd8844" (identifier "puVar9") (+ "+") (number_literal "0xd8844")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100)" (( "(") (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e4)" (* "*") (cast_expression "(undefined4 *)(puVar9 + 0xd76e4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd76e4)" (( "(") (binary_expression "puVar9 + 0xd76e4" (identifier "puVar9") (+ "+") (number_literal "0xd76e4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" (identifier "bVar4") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (; ";")) (} "}")))) (if_statement "if (bVar4 == 0) {\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }\n  else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }\n    bVar4 = *pbVar8;\n  }" ({ "{") (if_statement "if (**(int **)(puVar9 + 0xd6f70) == 0) {\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" (if "if") (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" (( "(") (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" (* "*") (pointer_expression "*(int **)(puVar9 + 0xd6f70)" (* "*") (cast_expression "(int **)(puVar9 + 0xd6f70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd6f70)" (( "(") (binary_expression "puVar9 + 0xd6f70" (identifier "puVar9") (+ "+") (number_literal "0xd6f70")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar10 = *(code **)(puVar9 + 0xd8928);\n      goto LAB_0007fc38;\n    }" ({ "{") (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar9 + 0xd8928)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8928)" (( "(") (binary_expression "puVar9 + 0xd8928" (identifier "puVar9") (+ "+") (number_literal "0xd8928")) () ")"))))) (; ";")) (goto_statement "goto LAB_0007fc38;" (goto "goto") (statement_identifier "LAB_0007fc38") (; ";")) (} "}"))) (expression_statement "bVar4 = *pbVar8;" (assignment_expression "bVar4 = *pbVar8" (identifier "bVar4") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (; ";")) (} "}")) (else_clause "else {\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" (else "else") (compound_statement "{\n    iVar7 = *(int *)(puVar9 + 0xd76e4);\n    pbVar6 = pbVar8;\n    do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);\n    pcVar10 = *(code **)(puVar9 + 0xd8928);\n    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(puVar9 + 0xd76e4);" (assignment_expression "iVar7 = *(int *)(puVar9 + 0xd76e4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar9 + 0xd76e4)" (* "*") (cast_expression "(int *)(puVar9 + 0xd76e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd76e4)" (( "(") (binary_expression "puVar9 + 0xd76e4" (identifier "puVar9") (+ "+") (number_literal "0xd76e4")) () ")"))))) (; ";")) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" (identifier "pbVar6") (= "=") (identifier "pbVar8")) (; ";")) (do_statement "do {\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    } while (bVar4 != 0);" (do "do") (compound_statement "{\n      pbVar6 = pbVar6 + 1;\n      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;\n      if (pbVar6 == (byte *)0x0) break;\n      bVar4 = *pbVar6;\n    }" ({ "{") (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + (uint)bVar4) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + (uint)bVar4) = 1" (pointer_expression "*(undefined1 *)(iVar7 + (uint)bVar4)" (* "*") (cast_expression "(undefined1 *)(iVar7 + (uint)bVar4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + (uint)bVar4)" (( "(") (binary_expression "iVar7 + (uint)bVar4" (identifier "iVar7") (+ "+") (cast_expression "(uint)bVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar4"))) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (pbVar6 == (byte *)0x0) break;" (if "if") (parenthesized_expression "(pbVar6 == (byte *)0x0)" (( "(") (binary_expression "pbVar6 == (byte *)0x0" (identifier "pbVar6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar4 = *pbVar6;" (assignment_expression "bVar4 = *pbVar6" (identifier "bVar4") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pcVar10 = *(code **)(puVar9 + 0xd8928);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0xd8928)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar9 + 0xd8928)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8928)" (( "(") (binary_expression "puVar9 + 0xd8928" (identifier "puVar9") (+ "+") (number_literal "0xd8928")) () ")"))))) (; ";")) (if_statement "if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" (if "if") (parenthesized_expression "((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0'))" (( "(") (binary_expression "(**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')" (parenthesized_expression "(**(int **)(puVar9 + 0xd6f70) == 0)" (( "(") (binary_expression "**(int **)(puVar9 + 0xd6f70) == 0" (pointer_expression "**(int **)(puVar9 + 0xd6f70)" (* "*") (pointer_expression "*(int **)(puVar9 + 0xd6f70)" (* "*") (cast_expression "(int **)(puVar9 + 0xd6f70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd6f70)" (( "(") (binary_expression "puVar9 + 0xd6f70" (identifier "puVar9") (+ "+") (number_literal "0xd6f70")) () ")"))))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar4 = *pbVar8, (char)bVar4 < '\0')" (( "(") (comma_expression "bVar4 = *pbVar8, (char)bVar4 < '\0'" (assignment_expression "bVar4 = *pbVar8" (identifier "bVar4") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (, ",") (binary_expression "(char)bVar4 < '\0'" (cast_expression "(char)bVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar4")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\nLAB_0007fc38:\n      uVar1 = (*pcVar10)();\n      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);\n      uVar2 = (**(code **)(puVar9 + 0xd8928))();\n      if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      *puVar5 = uVar1;\n      goto LAB_0007fc88;\n    }" ({ "{") (labeled_statement "LAB_0007fc38:\n      uVar1 = (*pcVar10)();" (statement_identifier "LAB_0007fc38") (: ":") (expression_statement "uVar1 = (*pcVar10)();" (assignment_expression "uVar1 = (*pcVar10)()" (identifier "uVar1") (= "=") (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" (identifier "uVar1") (= "=") (call_expression "(**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd87e4))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd87e4)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd87e4)" (* "*") (cast_expression "(code **)(puVar9 + 0xd87e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd87e4)" (( "(") (binary_expression "puVar9 + 0xd87e4" (identifier "puVar9") (+ "+") (number_literal "0xd87e4")) () ")"))))) () ")")) (argument_list "(pbVar8,uVar1)" (( "(") (identifier "pbVar8") (, ",") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "uVar2 = (**(code **)(puVar9 + 0xd8928))();" (assignment_expression "uVar2 = (**(code **)(puVar9 + 0xd8928))()" (identifier "uVar2") (= "=") (call_expression "(**(code **)(puVar9 + 0xd8928))()" (parenthesized_expression "(**(code **)(puVar9 + 0xd8928))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd8928)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd8928)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8928)" (( "(") (binary_expression "puVar9 + 0xd8928" (identifier "puVar9") (+ "+") (number_literal "0xd8928")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar2 < 2) {\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }\n      else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" (if "if") (parenthesized_expression "(uVar2 < 2)" (( "(") (binary_expression "uVar2 < 2" (identifier "uVar2") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        uVar1 = 1;\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" ({ "{") (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" (identifier "uVar1") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" (else "else") (compound_statement "{\n        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);\n        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);\n      }" ({ "{") (expression_statement "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" (identifier "uVar1") (= "=") (call_expression "(**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" (parenthesized_expression "(**(code **)(puVar9 + 0xd8940))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd8940)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd8940)" (* "*") (cast_expression "(code **)(puVar9 + 0xd8940)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd8940)" (( "(") (binary_expression "puVar9 + 0xd8940" (identifier "puVar9") (+ "+") (number_literal "0xd8940")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(puVar9 + 0xd76cc),uVar1)" (( "(") (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")"))))) (, ",") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar9 + 0xd76dc)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (; ";")) (} "}")))) (expression_statement "*puVar5 = uVar1;" (assignment_expression "*puVar5 = uVar1" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar1")) (; ";")) (goto_statement "goto LAB_0007fc88;" (goto "goto") (statement_identifier "LAB_0007fc88") (; ";")) (} "}"))) (} "}")))) (expression_statement "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);" (assignment_expression "**(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0)" (pointer_expression "**(uint **)(puVar9 + 0xd76dc)" (* "*") (pointer_expression "*(uint **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(uint **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (= "=") (call_expression "(uint)(bVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (labeled_statement "LAB_0007fc88:\n  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" (statement_identifier "LAB_0007fc88") (: ":") (expression_statement "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);" (assignment_expression "puVar3 = *(undefined1 **)(puVar9 + 0xd76e0)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined1 **)(puVar9 + 0xd76e0)" (* "*") (cast_expression "(undefined1 **)(puVar9 + 0xd76e0)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76e0)" (( "(") (binary_expression "puVar9 + 0xd76e0" (identifier "puVar9") (+ "+") (number_literal "0xd76e0")) () ")"))))) (; ";"))) (if_statement "if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }\n  else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" (if "if") (parenthesized_expression "(**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc)" (( "(") (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc" (binary_expression "**(int **)(puVar9 + 0xd76dc) - 2U" (pointer_expression "**(int **)(puVar9 + 0xd76dc)" (* "*") (pointer_expression "*(int **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(int **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (- "-") (number_literal "2U")) (< "<") (number_literal "0xfffffffc")) () ")")) (compound_statement "{\n    (**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);\n  }" ({ "{") (expression_statement "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10);" (call_expression "(**(code **)(puVar9 + 0xd88c4))\n              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" (parenthesized_expression "(**(code **)(puVar9 + 0xd88c4))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xd88c4)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xd88c4)" (* "*") (cast_expression "(code **)(puVar9 + 0xd88c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd88c4)" (( "(") (binary_expression "puVar9 + 0xd88c4" (identifier "puVar9") (+ "+") (number_literal "0xd88c4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),\n               **(int **)(puVar9 + 0xd76dc),0x10)" (( "(") (pointer_expression "*(undefined4 *)(puVar9 + 0xd76e0)" (* "*") (cast_expression "(undefined4 *)(puVar9 + 0xd76e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xd76e0)" (( "(") (binary_expression "puVar9 + 0xd76e0" (identifier "puVar9") (+ "+") (number_literal "0xd76e0")) () ")")))) (, ",") (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")"))))) (, ",") (pointer_expression "**(int **)(puVar9 + 0xd76dc)" (* "*") (pointer_expression "*(int **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(int **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (, ",") (number_literal "0x10") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" (else "else") (compound_statement "{\n    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);\n    puVar3[1] = 0;\n    **(undefined4 **)(puVar9 + 0xd76dc) = 1;\n  }" ({ "{") (expression_statement "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);" (assignment_expression "*puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76cc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76cc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76cc)" (( "(") (binary_expression "puVar9 + 0xd76cc" (identifier "puVar9") (+ "+") (number_literal "0xd76cc")) () ")")))))))) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "**(undefined4 **)(puVar9 + 0xd76dc) = 1;" (assignment_expression "**(undefined4 **)(puVar9 + 0xd76dc) = 1" (pointer_expression "**(undefined4 **)(puVar9 + 0xd76dc)" (* "*") (pointer_expression "*(undefined4 **)(puVar9 + 0xd76dc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + 0xd76dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xd76dc)" (( "(") (binary_expression "puVar9 + 0xd76dc" (identifier "puVar9") (+ "+") (number_literal "0xd76dc")) () ")"))))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

int function_1(char *string)

{
  int var_2;
  int iVar2;
  type_1 uVar3;
  type_2 var_7;
  type_3 *puVar5;
  type_1 *puVar6;
  type_4 var_5;
  type_4 *var_6;
  type_4 *var_4;
  type_5 *var_3;
  type_6 *pcVar11;
  type_7 td;
  
  var_3 = PTR___stack_chk_guard_0015858c;
  var_2 = *(int *)PTR___stack_chk_guard_0015858c;
  td.flags = 4;
  td.word = string;
  iVar2 = var_1(&td,0);
  if (var_2 == *(int *)var_3) {
    return iVar2;
  }
  var_3 = PTR___stack_chk_fail_0015853c;
  (*(type_6 *)PTR___stack_chk_fail_0015853c)();
  **(int **)(var_3 + 0xd7704) = var_2;
  if (var_2 == 0) {
    var_4 = (type_4 *)(*(int *)(var_3 + 0xd6a9c) + -0x6ef8);
    **(type_1 **)(var_3 + 0xd76cc) = var_4;
    **(type_1 **)(var_3 + 0xd7774) = 0;
LAB_0007fd30:
    **(type_1 **)(var_3 + 0xd7730) = 0;
    (**(type_6 **)(var_3 + 0xd8844))(*(type_1 *)(var_3 + 0xd76e4),0,0x100);
    var_5 = *var_4;
  }
  else {
    var_4 = *(type_4 **)(var_2 + 4);
    if (var_4 == (type_4 *)0x0) {
      var_4 = (type_4 *)(*(int *)(var_3 + 0xd6a9c) + -0x6ef8);
      **(type_1 **)(var_3 + 0xd76cc) = var_4;
      **(type_1 **)(var_3 + 0xd7774) = 1;
      goto LAB_0007fd30;
    }
    **(type_1 **)(var_3 + 0xd76cc) = var_4;
    **(type_1 **)(var_3 + 0xd7774) = 1;
    if (*var_4 != 0) goto LAB_0007fd30;
    **(type_1 **)(var_3 + 0xd7730) = 1;
    (**(type_6 **)(var_3 + 0xd8844))(*(type_1 *)(var_3 + 0xd76e4),0,0x100);
    var_5 = *var_4;
  }
  if (var_5 == 0) {
    if (**(int **)(var_3 + 0xd6f70) == 0) {
      pcVar11 = *(type_6 **)(var_3 + 0xd8928);
      goto LAB_0007fc38;
    }
    var_5 = *var_4;
  }
  else {
    var_2 = *(int *)(var_3 + 0xd76e4);
    var_6 = var_4;
    do {
      var_6 = var_6 + 1;
      *(type_3 *)(var_2 + (type_2)var_5) = 1;
      if (var_6 == (type_4 *)0x0) break;
      var_5 = *var_6;
    } while (var_5 != 0);
    pcVar11 = *(type_6 **)(var_3 + 0xd8928);
    if ((**(int **)(var_3 + 0xd6f70) == 0) || (var_5 = *var_4, (char)var_5 < '\0')) {
LAB_0007fc38:
      uVar3 = (*pcVar11)();
      uVar3 = (**(type_6 **)(var_3 + 0xd87e4))(var_4,uVar3);
      var_7 = (**(type_6 **)(var_3 + 0xd8928))();
      if (var_7 < 2) {
        uVar3 = 1;
        puVar6 = *(type_1 **)(var_3 + 0xd76dc);
      }
      else {
        uVar3 = (**(type_6 **)(var_3 + 0xd8940))(**(type_1 **)(var_3 + 0xd76cc),uVar3);
        puVar6 = *(type_1 **)(var_3 + 0xd76dc);
      }
      *puVar6 = uVar3;
      goto LAB_0007fc88;
    }
  }
  **(type_2 **)(var_3 + 0xd76dc) = (type_2)(var_5 != 0);
LAB_0007fc88:
  puVar5 = *(type_3 **)(var_3 + 0xd76e0);
  if (**(int **)(var_3 + 0xd76dc) - 2U < 0xfffffffc) {
    puVar6 = (type_1 *)
             (**(type_6 **)(var_3 + 0xd88c4))
                       (*(type_1 *)(var_3 + 0xd76e0),**(type_1 **)(var_3 + 0xd76cc),
                        **(int **)(var_3 + 0xd76dc),0x10);
  }
  else {
    *puVar5 = *(type_3 *)**(type_1 **)(var_3 + 0xd76cc);
    puVar5[1] = 0;
    puVar6 = *(type_1 **)(var_3 + 0xd76dc);
    *puVar6 = 1;
  }
  return (int)puVar6;
}


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

void MASKED(undefined4 param_1)

{
  undefined4 uVar1;
  uint uVar2;
  undefined1 *puVar3;
  byte bVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  int iVar7;
  byte *pbVar8;
  undefined *puVar9;
  code *pcVar10;
  undefined4 local_14;
  undefined4 local_10;
  int local_c;
  
  puVar9 = PTR___stack_chk_guard_0015858c;
  local_c = *(int *)PTR___stack_chk_guard_0015858c;
  local_10 = 4;
  local_14 = param_1;
  FUN_0007f1ec(&local_14,0);
  if (local_c == *(int *)puVar9) {
    return;
  }
  iVar7 = local_c;
  puVar9 = PTR___stack_chk_fail_0015853c;
  (*(code *)PTR___stack_chk_fail_0015853c)();
  **(int **)(puVar9 + 0xd7704) = iVar7;
  if (iVar7 == 0) {
    pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);
    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
    **(undefined4 **)(puVar9 + 0xd7774) = 0;
LAB_0007fd30:
    **(undefined4 **)(puVar9 + 0xd7730) = 0;
    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);
    bVar4 = *pbVar8;
  }
  else {
    pbVar8 = *(byte **)(iVar7 + 4);
    if (pbVar8 == (byte *)0x0) {
      pbVar8 = (byte *)(*(int *)(puVar9 + 0xd6a9c) + -0x6ef8);
      **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
      **(undefined4 **)(puVar9 + 0xd7774) = 1;
      goto LAB_0007fd30;
    }
    **(undefined4 **)(puVar9 + 0xd76cc) = pbVar8;
    **(undefined4 **)(puVar9 + 0xd7774) = 1;
    if (*pbVar8 != 0) goto LAB_0007fd30;
    **(undefined4 **)(puVar9 + 0xd7730) = 1;
    (**(code **)(puVar9 + 0xd8844))(*(undefined4 *)(puVar9 + 0xd76e4),0,0x100);
    bVar4 = *pbVar8;
  }
  if (bVar4 == 0) {
    if (**(int **)(puVar9 + 0xd6f70) == 0) {
      pcVar10 = *(code **)(puVar9 + 0xd8928);
      goto LAB_0007fc38;
    }
    bVar4 = *pbVar8;
  }
  else {
    iVar7 = *(int *)(puVar9 + 0xd76e4);
    pbVar6 = pbVar8;
    do {
      pbVar6 = pbVar6 + 1;
      *(undefined1 *)(iVar7 + (uint)bVar4) = 1;
      if (pbVar6 == (byte *)0x0) break;
      bVar4 = *pbVar6;
    } while (bVar4 != 0);
    pcVar10 = *(code **)(puVar9 + 0xd8928);
    if ((**(int **)(puVar9 + 0xd6f70) == 0) || (bVar4 = *pbVar8, (char)bVar4 < '\0')) {
LAB_0007fc38:
      uVar1 = (*pcVar10)();
      uVar1 = (**(code **)(puVar9 + 0xd87e4))(pbVar8,uVar1);
      uVar2 = (**(code **)(puVar9 + 0xd8928))();
      if (uVar2 < 2) {
        uVar1 = 1;
        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);
      }
      else {
        uVar1 = (**(code **)(puVar9 + 0xd8940))(**(undefined4 **)(puVar9 + 0xd76cc),uVar1);
        puVar5 = *(undefined4 **)(puVar9 + 0xd76dc);
      }
      *puVar5 = uVar1;
      goto LAB_0007fc88;
    }
  }
  **(uint **)(puVar9 + 0xd76dc) = (uint)(bVar4 != 0);
LAB_0007fc88:
  puVar3 = *(undefined1 **)(puVar9 + 0xd76e0);
  if (**(int **)(puVar9 + 0xd76dc) - 2U < 0xfffffffc) {
    (**(code **)(puVar9 + 0xd88c4))
              (*(undefined4 *)(puVar9 + 0xd76e0),**(undefined4 **)(puVar9 + 0xd76cc),
               **(int **)(puVar9 + 0xd76dc),0x10);
  }
  else {
    *puVar3 = *(undefined1 *)**(undefined4 **)(puVar9 + 0xd76cc);
    puVar3[1] = 0;
    **(undefined4 **)(puVar9 + 0xd76dc) = 1;
  }
  return;
}

