
int xrtnl_wilddump_request(rtnl_handle *rth,int family,int type)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  uint uVar8;
  anon_struct_20_2_de335fbd *buf;
  undefined4 **ppuVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  undefined4 *puVar14;
  undefined4 *in_t4;
  undefined4 *puVar15;
  int *piVar16;
  uint *puVar17;
  undefined *puVar18;
  code *pcVar19;
  code *pcVar20;
  uint *puStack_104;
  undefined4 uStack_100;
  undefined1 auStack_fc [4];
  int iStack_f8;
  undefined1 *puStack_f0;
  int iStack_ec;
  uint **ppuStack_e8;
  undefined4 uStack_e4;
  undefined4 uStack_e0;
  undefined4 uStack_dc;
  uint uStack_d8;
  int iStack_d4;
  undefined4 *puStack_d0;
  uint uStack_8c;
  undefined2 uStack_88;
  undefined2 uStack_86;
  int iStack_84;
  undefined4 uStack_80;
  undefined4 *puStack_7c;
  undefined4 uStack_78;
  uint **ppuStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  undefined4 uStack_58;
  uint *puStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  int iStack_48;
  undefined4 *puStack_44;
  undefined *puStack_40;
  code *pcStack_3c;
  anon_struct_20_2_de335fbd req;
  
  req.nlh.nlmsg_seq = rth->seq + 1;
  rth->seq = req.nlh.nlmsg_seq;
  rth->dump = req.nlh.nlmsg_seq;
  puVar1 = PTR___stack_chk_guard_0012b14c;
  req.nlh.nlmsg_len = 0x14;
  iVar12 = 0x301;
  req.nlh.nlmsg_type = (__u16)type;
  uVar10 = 0x14;
  req.g.rtgen_family = (uchar)family;
  buf = &req;
  req.nlh.nlmsg_flags = 0x301;
  req.nlh.nlmsg_pid = 0;
  puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c;
  iVar3 = rtnl_send(rth,(char *)buf,0x14);
  uStack_88 = SUB42(buf,0);
  if (puVar2 == *(undefined4 **)puVar1) {
    return iVar3;
  }
  pcVar20 = rtnl_dump_request;
  puVar18 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  pcVar19 = *(code **)(puVar18 + 0xcd2a0);
  puStack_7c = &uStack_60;
  puStack_40 = puVar1;
  iStack_84 = puVar2[7] + 1;
  puStack_54 = &uStack_8c;
  uStack_78 = 0xc;
  ppuStack_74 = &puStack_54;
  puVar15 = *(undefined4 **)(puVar18 + 0xcd618);
  uVar13 = iVar12 + 0x10;
  uStack_70 = 2;
  uVar11 = 0;
  ppuVar9 = &puStack_7c;
  puVar2[7] = iStack_84;
  puVar2[8] = iStack_84;
  uStack_50 = 0x10;
  uStack_80 = 0;
  uStack_6c = 0;
  uStack_68 = 0;
  uStack_64 = 0;
  uStack_5c = 0;
  uStack_58 = 0;
  uStack_60 = 0x100000;
  uStack_86 = 0x301;
  puVar14 = (undefined4 *)*puVar15;
  uStack_8c = uVar13;
  uStack_4c = uVar10;
  iStack_48 = iVar12;
  puStack_44 = puVar14;
  pcStack_3c = pcVar20;
  iVar3 = (*pcVar19)(*puVar2);
  if (puStack_44 == (undefined4 *)*puVar15) {
    return iVar3;
  }
  pcVar20 = *(code **)(puVar18 + 0xcd594);
  puVar2 = puStack_44;
  (*pcVar20)();
  pcVar19 = *(code **)(pcVar20 + 0xcc5a4);
  piVar16 = *(int **)(pcVar20 + 0xcd528);
  iStack_d4 = *piVar16;
  puStack_d0 = puVar15;
  puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000);
  uStack_100 = 0x2000;
  iVar12 = *(int *)(pcVar20 + 0xcc568);
  iVar3 = *(int *)(pcVar20 + 0xcc568);
  puStack_104 = puVar4;
LAB_0005dcc4:
  while( true ) {
    puVar17 = (uint *)&DAT_0000000c;
    iStack_ec = 0xc;
    uStack_e4 = 1;
    uStack_e0 = 0;
    uStack_dc = 0;
    uStack_d8 = 0;
    puStack_f0 = auStack_fc;
    ppuStack_e8 = &puStack_104;
    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);
    if (-1 < (int)uVar5) break;
    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {
      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);
    }
  }
  if (uVar5 == 0) {
    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);
    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;
    goto LAB_0005df00;
  }
  uVar6 = uVar5;
  if (iStack_ec != 0xc) {
    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);
  }
  if ((int)uVar6 < 0x10) goto LAB_0005de70;
  uVar6 = *puVar4;
  if (uVar6 < 0x10) goto LAB_0005de70;
  in_t4 = (undefined4 *)0x3;
  if (uVar5 < uVar6) goto LAB_0005de70;
  puVar14 = (undefined4 *)&SUB_00000002;
  uVar13 = 0xfffffffc;
  puVar17 = puVar4;
  do {
    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {
      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {
        (**(code **)(pcVar20 + 0xcd544))(puVar4);
        if (iStack_d4 == *piVar16) {
          return 0;
        }
        (**(code **)(pcVar20 + 0xcd4a4))();
LAB_0005df48:
        (**(code **)(pcVar20 + 0xcd544))(puVar4);
        do {
          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);
LAB_0005df2c:
          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);
          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;
LAB_0005df00:
          (*pcVar19)(iVar3);
          (**(code **)(pcVar20 + 0xcd544))(puVar4);
        } while( true );
      }
      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {
        if (uVar6 < 0x24) goto LAB_0005df2c;
        pcVar19 = *(code **)(pcVar20 + 0xcc614);
        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;
        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];
        goto LAB_0005df00;
      }
      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);
      if (iVar7 < 0) goto LAB_0005df48;
      in_t4 = (undefined4 *)0x3;
      puVar14 = (undefined4 *)&SUB_00000002;
      uVar13 = 0xfffffffc;
    }
    uVar6 = *puVar17 + 3 & uVar13;
    uVar5 = uVar5 - uVar6;
    puVar17 = (uint *)((int)puVar17 + uVar6);
    if ((int)uVar5 < 0x10) {
      if ((uStack_d8 & 0x20) == 0) {
        iVar7 = *(int *)(pcVar20 + 0xcc568);
        if (uVar5 != 0) goto LAB_0005deac;
      }
      else {
LAB_0005de80:
        (*pcVar19)(iVar12 + 0x5b94);
      }
      goto LAB_0005dcc4;
    }
    uVar6 = *puVar17;
    uVar8 = (uint)(uVar5 < uVar6);
    if (0xf < uVar6) goto LAB_0005deb8;
LAB_0005de70:
    iVar7 = *(int *)(pcVar20 + 0xcc568);
    while( true ) {
      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;
LAB_0005deac:
      uVar8 = iVar7 + 0x5ba8;
      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);
LAB_0005deb8:
      if (uVar8 == 0) break;
      iVar7 = *(int *)(pcVar20 + 0xcc568);
    }
  } while( true );
}



undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  uint *puVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  uint uVar8;
  undefined4 **ppuVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  undefined4 *puVar14;
  undefined4 *in_t4;
  undefined4 *puVar15;
  int iVar16;
  int *piVar17;
  uint *puVar18;
  undefined *puVar19;
  code *pcVar20;
  code *pcVar21;
  uint *puStack_104;
  undefined4 uStack_100;
  undefined1 auStack_fc [4];
  int iStack_f8;
  undefined1 *puStack_f0;
  int iStack_ec;
  uint **ppuStack_e8;
  undefined4 uStack_e4;
  undefined4 uStack_e0;
  undefined4 uStack_dc;
  uint uStack_d8;
  int iStack_d4;
  undefined4 *puStack_d0;
  uint uStack_8c;
  undefined2 uStack_88;
  undefined2 uStack_86;
  int iStack_84;
  undefined4 uStack_80;
  undefined4 *puStack_7c;
  undefined4 uStack_78;
  uint **ppuStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  undefined4 uStack_58;
  uint *puStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  int iStack_48;
  undefined4 *puStack_44;
  undefined *puStack_40;
  code *pcStack_3c;
  undefined4 local_20;
  undefined2 local_1c;
  undefined2 local_1a;
  int local_18;
  undefined4 local_14;
  undefined1 local_10;
  undefined4 *local_c;
  
  local_18 = *(int *)(param_1 + 0x1c) + 1;
  *(int *)(param_1 + 0x1c) = local_18;
  *(int *)(param_1 + 0x20) = local_18;
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_20 = 0x14;
  iVar12 = 0x301;
  uVar10 = 0x14;
  uStack_88 = SUB42(&local_20,0);
  local_1a = 0x301;
  local_14 = 0;
  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;
  local_1c = param_3;
  local_10 = param_2;
  uVar2 = FUN_0005da10();
  if (local_c == *(undefined4 **)puVar1) {
    return uVar2;
  }
  pcVar21 = FUN_0005db34;
  puVar7 = local_c;
  puVar19 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  pcVar20 = *(code **)(puVar19 + 0xcd2a0);
  puStack_7c = &uStack_60;
  puStack_40 = puVar1;
  iStack_84 = puVar7[7] + 1;
  puStack_54 = &uStack_8c;
  uStack_78 = 0xc;
  ppuStack_74 = &puStack_54;
  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);
  uVar13 = iVar12 + 0x10;
  uStack_70 = 2;
  uVar11 = 0;
  ppuVar9 = &puStack_7c;
  puVar7[7] = iStack_84;
  puVar7[8] = iStack_84;
  uStack_50 = 0x10;
  uStack_80 = 0;
  uStack_6c = 0;
  uStack_68 = 0;
  uStack_64 = 0;
  uStack_5c = 0;
  uStack_58 = 0;
  uStack_60 = 0x100000;
  uStack_86 = 0x301;
  puVar14 = (undefined4 *)*puVar15;
  uStack_8c = uVar13;
  uStack_4c = uVar10;
  iStack_48 = iVar12;
  puStack_44 = puVar14;
  pcStack_3c = pcVar21;
  uVar2 = (*pcVar20)(*puVar7);
  if (puStack_44 == (undefined4 *)*puVar15) {
    return uVar2;
  }
  pcVar21 = *(code **)(puVar19 + 0xcd594);
  puVar7 = puStack_44;
  (*pcVar21)();
  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
  piVar17 = *(int **)(pcVar21 + 0xcd528);
  iStack_d4 = *piVar17;
  puStack_d0 = puVar15;
  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);
  uStack_100 = 0x2000;
  iVar16 = *(int *)(pcVar21 + 0xcc568);
  iVar12 = *(int *)(pcVar21 + 0xcc568);
  puStack_104 = puVar3;
LAB_0005dcc4:
  while( true ) {
    puVar18 = (uint *)&DAT_0000000c;
    iStack_ec = 0xc;
    uStack_e4 = 1;
    uStack_e0 = 0;
    uStack_dc = 0;
    uStack_d8 = 0;
    puStack_f0 = auStack_fc;
    ppuStack_e8 = &puStack_104;
    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);
    if (-1 < (int)uVar4) break;
    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {
      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);
    }
  }
  if (uVar4 == 0) {
    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;
    goto LAB_0005df00;
  }
  uVar5 = uVar4;
  if (iStack_ec != 0xc) {
    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);
  }
  if ((int)uVar5 < 0x10) goto LAB_0005de70;
  uVar5 = *puVar3;
  if (uVar5 < 0x10) goto LAB_0005de70;
  in_t4 = (undefined4 *)0x3;
  if (uVar4 < uVar5) goto LAB_0005de70;
  puVar14 = (undefined4 *)&SUB_00000002;
  uVar13 = 0xfffffffc;
  puVar18 = puVar3;
  do {
    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {
      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {
        (**(code **)(pcVar21 + 0xcd544))(puVar3);
        if (iStack_d4 == *piVar17) {
          return 0;
        }
        (**(code **)(pcVar21 + 0xcd4a4))();
LAB_0005df48:
        (**(code **)(pcVar21 + 0xcd544))(puVar3);
        do {
          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);
LAB_0005df2c:
          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;
LAB_0005df00:
          (*pcVar20)(iVar12);
          (**(code **)(pcVar21 + 0xcd544))(puVar3);
        } while( true );
      }
      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {
        if (uVar5 < 0x24) goto LAB_0005df2c;
        pcVar20 = *(code **)(pcVar21 + 0xcc614);
        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;
        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];
        goto LAB_0005df00;
      }
      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);
      if (iVar6 < 0) goto LAB_0005df48;
      in_t4 = (undefined4 *)0x3;
      puVar14 = (undefined4 *)&SUB_00000002;
      uVar13 = 0xfffffffc;
    }
    uVar5 = *puVar18 + 3 & uVar13;
    uVar4 = uVar4 - uVar5;
    puVar18 = (uint *)((int)puVar18 + uVar5);
    if ((int)uVar4 < 0x10) {
      if ((uStack_d8 & 0x20) == 0) {
        iVar6 = *(int *)(pcVar21 + 0xcc568);
        if (uVar4 != 0) goto LAB_0005deac;
      }
      else {
LAB_0005de80:
        (*pcVar20)(iVar16 + 0x5b94);
      }
      goto LAB_0005dcc4;
    }
    uVar5 = *puVar18;
    uVar8 = (uint)(uVar4 < uVar5);
    if (0xf < uVar5) goto LAB_0005deb8;
LAB_0005de70:
    iVar6 = *(int *)(pcVar21 + 0xcc568);
    while( true ) {
      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;
LAB_0005deac:
      uVar8 = iVar6 + 0x5ba8;
      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);
LAB_0005deb8:
      if (uVar8 == 0) break;
      iVar6 = *(int *)(pcVar21 + 0xcc568);
    }
  } while( true );
}


lui gp,0xd
addiu gp,gp,0x46b4
addu gp,gp,t9
addiu sp,sp,-0x38
lw v0,0x1c(a0)
li a3,0x14
lw t9,-0x7a9c(gp)
sw s0,0x30(sp)
addiu v0,v0,0x1
sw gp,0x10(sp)
sw ra,0x34(sp)
sw v0,0x20(sp)
sw v0,0x1c(a0)
sw v0,0x20(a0)
lw s0,-0x7004(gp)
sw a3,0x18(sp)
li a3,0x301
sh a2,0x1c(sp)
li a2,0x14
sb a1,0x28(sp)
addiu a1,sp,0x18
sh a3,0x1e(sp)
sw zero,0x24(sp)
lw v0,0x0(s0)
sw v0,0x2c(sp)
bal 0x0005da10
_nop
lw a0,0x2c(sp)
lw v1,0x0(s0)
bne a0,v1,0x0005db28
_lw gp,0x10(sp)
lw ra,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x7088(gp)
jalr t9
_nop
(translation_unit "undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)" identifier (parameter_list "(int param_1,undefined1 param_2,undefined2 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) , (parameter_declaration "undefined2 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *in_t4;" type_identifier (pointer_declarator "*in_t4" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint *puStack_104;" type_identifier (pointer_declarator "*puStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "uint **ppuStack_e8;" type_identifier (pointer_declarator "**ppuStack_e8" * (pointer_declarator "*ppuStack_e8" * identifier)) ;) (declaration "undefined4 uStack_e4;" type_identifier identifier ;) (declaration "undefined4 uStack_e0;" type_identifier identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "undefined2 uStack_88;" type_identifier identifier ;) (declaration "undefined2 uStack_86;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined4 *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "uint **ppuStack_74;" type_identifier (pointer_declarator "**ppuStack_74" * (pointer_declarator "*ppuStack_74" * identifier)) ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "undefined4 uStack_60;" type_identifier identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "undefined4 uStack_50;" type_identifier identifier ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "undefined4 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "undefined *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined2 local_1c;" type_identifier identifier ;) (declaration "undefined2 local_1a;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined1 local_10;" type_identifier identifier ;) (declaration "undefined4 *local_c;" type_identifier (pointer_declarator "*local_c" * identifier) ;) (expression_statement "local_18 = *(int *)(param_1 + 0x1c) + 1;" (assignment_expression "local_18 = *(int *)(param_1 + 0x1c) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x1c) = local_18;" (assignment_expression "*(int *)(param_1 + 0x1c) = local_18" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = local_18;" (assignment_expression "*(int *)(param_1 + 0x20) = local_18" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_20 = 0x14;" (assignment_expression "local_20 = 0x14" identifier = number_literal) ;) (expression_statement "iVar12 = 0x301;" (assignment_expression "iVar12 = 0x301" identifier = number_literal) ;) (expression_statement "uVar10 = 0x14;" (assignment_expression "uVar10 = 0x14" identifier = number_literal) ;) (expression_statement "uStack_88 = SUB42(&local_20,0);" (assignment_expression "uStack_88 = SUB42(&local_20,0)" identifier = (call_expression "SUB42(&local_20,0)" identifier (argument_list "(&local_20,0)" ( (pointer_expression "&local_20" & identifier) , number_literal )))) ;) (expression_statement "local_1a = 0x301;" (assignment_expression "local_1a = 0x301" identifier = number_literal) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0012b14c" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_1c = param_3;" (assignment_expression "local_1c = param_3" identifier = identifier) ;) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0005da10();" (assignment_expression "uVar2 = FUN_0005da10()" identifier = (call_expression "FUN_0005da10()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_c == *(undefined4 **)puVar1)" ( (binary_expression "local_c == *(undefined4 **)puVar1" identifier == (pointer_expression "*(undefined4 **)puVar1" * (cast_expression "(undefined4 **)puVar1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar21 = FUN_0005db34;" (assignment_expression "pcVar21 = FUN_0005db34" identifier = identifier) ;) (expression_statement "puVar7 = local_c;" (assignment_expression "puVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(puVar19 + 0xcd2a0);" (assignment_expression "pcVar20 = *(code **)(puVar19 + 0xcd2a0)" identifier = (pointer_expression "*(code **)(puVar19 + 0xcd2a0)" * (cast_expression "(code **)(puVar19 + 0xcd2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd2a0)" ( (binary_expression "puVar19 + 0xcd2a0" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = &uStack_60;" (assignment_expression "puStack_7c = &uStack_60" identifier = (pointer_expression "&uStack_60" & identifier)) ;) (expression_statement "puStack_40 = puVar1;" (assignment_expression "puStack_40 = puVar1" identifier = identifier) ;) (expression_statement "iStack_84 = puVar7[7] + 1;" (assignment_expression "iStack_84 = puVar7[7] + 1" identifier = (binary_expression "puVar7[7] + 1" (subscript_expression "puVar7[7]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puStack_54 = &uStack_8c;" (assignment_expression "puStack_54 = &uStack_8c" identifier = (pointer_expression "&uStack_8c" & identifier)) ;) (expression_statement "uStack_78 = 0xc;" (assignment_expression "uStack_78 = 0xc" identifier = number_literal) ;) (expression_statement "ppuStack_74 = &puStack_54;" (assignment_expression "ppuStack_74 = &puStack_54" identifier = (pointer_expression "&puStack_54" & identifier)) ;) (expression_statement "puVar15 = *(undefined4 **)(puVar19 + 0xcd618);" (assignment_expression "puVar15 = *(undefined4 **)(puVar19 + 0xcd618)" identifier = (pointer_expression "*(undefined4 **)(puVar19 + 0xcd618)" * (cast_expression "(undefined4 **)(puVar19 + 0xcd618)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd618)" ( (binary_expression "puVar19 + 0xcd618" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = iVar12 + 0x10;" (assignment_expression "uVar13 = iVar12 + 0x10" identifier = (binary_expression "iVar12 + 0x10" identifier + number_literal)) ;) (expression_statement "uStack_70 = 2;" (assignment_expression "uStack_70 = 2" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "ppuVar9 = &puStack_7c;" (assignment_expression "ppuVar9 = &puStack_7c" identifier = (pointer_expression "&puStack_7c" & identifier)) ;) (expression_statement "puVar7[7] = iStack_84;" (assignment_expression "puVar7[7] = iStack_84" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[8] = iStack_84;" (assignment_expression "puVar7[8] = iStack_84" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_50 = 0x10;" (assignment_expression "uStack_50 = 0x10" identifier = number_literal) ;) (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" identifier = number_literal) ;) (expression_statement "uStack_60 = 0x100000;" (assignment_expression "uStack_60 = 0x100000" identifier = number_literal) ;) (expression_statement "uStack_86 = 0x301;" (assignment_expression "uStack_86 = 0x301" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)*puVar15;" (assignment_expression "puVar14 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "uStack_8c = uVar13;" (assignment_expression "uStack_8c = uVar13" identifier = identifier) ;) (expression_statement "uStack_4c = uVar10;" (assignment_expression "uStack_4c = uVar10" identifier = identifier) ;) (expression_statement "iStack_48 = iVar12;" (assignment_expression "iStack_48 = iVar12" identifier = identifier) ;) (expression_statement "puStack_44 = puVar14;" (assignment_expression "puStack_44 = puVar14" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar21;" (assignment_expression "pcStack_3c = pcVar21" identifier = identifier) ;) (expression_statement "uVar2 = (*pcVar20)(*puVar7);" (assignment_expression "uVar2 = (*pcVar20)(*puVar7)" identifier = (call_expression "(*pcVar20)(*puVar7)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(*puVar7)" ( (pointer_expression "*puVar7" * identifier) )))) ;) (if_statement "if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }" if (parenthesized_expression "(puStack_44 == (undefined4 *)*puVar15)" ( (binary_expression "puStack_44 == (undefined4 *)*puVar15" identifier == (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(puVar19 + 0xcd594);" (assignment_expression "pcVar21 = *(code **)(puVar19 + 0xcd594)" identifier = (pointer_expression "*(code **)(puVar19 + 0xcd594)" * (cast_expression "(code **)(puVar19 + 0xcd594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd594)" ( (binary_expression "puVar19 + 0xcd594" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = puStack_44;" (assignment_expression "puVar7 = puStack_44" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "piVar17 = *(int **)(pcVar21 + 0xcd528);" (assignment_expression "piVar17 = *(int **)(pcVar21 + 0xcd528)" identifier = (pointer_expression "*(int **)(pcVar21 + 0xcd528)" * (cast_expression "(int **)(pcVar21 + 0xcd528)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd528)" ( (binary_expression "pcVar21 + 0xcd528" identifier + number_literal) ))))) ;) (expression_statement "iStack_d4 = *piVar17;" (assignment_expression "iStack_d4 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "puStack_d0 = puVar15;" (assignment_expression "puStack_d0 = puVar15" identifier = identifier) ;) (expression_statement "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);" (assignment_expression "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" identifier = (cast_expression "(uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar21 + 0xcc60c))(0x2000)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc60c))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc60c)" * (pointer_expression "*(code **)(pcVar21 + 0xcc60c)" * (cast_expression "(code **)(pcVar21 + 0xcc60c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc60c)" ( (binary_expression "pcVar21 + 0xcc60c" identifier + number_literal) ))))) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uStack_100 = 0x2000;" (assignment_expression "uStack_100 = 0x2000" identifier = number_literal) ;) (expression_statement "iVar16 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar16 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "puStack_104 = puVar3;" (assignment_expression "puStack_104 = puVar3" identifier = identifier) ;) (labeled_statement "LAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" { (expression_statement "puVar18 = (uint *)&DAT_0000000c;" (assignment_expression "puVar18 = (uint *)&DAT_0000000c" identifier = (cast_expression "(uint *)&DAT_0000000c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) ;) (expression_statement "iStack_ec = 0xc;" (assignment_expression "iStack_ec = 0xc" identifier = number_literal) ;) (expression_statement "uStack_e4 = 1;" (assignment_expression "uStack_e4 = 1" identifier = number_literal) ;) (expression_statement "uStack_e0 = 0;" (assignment_expression "uStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "puStack_f0 = auStack_fc;" (assignment_expression "puStack_f0 = auStack_fc" identifier = identifier) ;) (expression_statement "ppuStack_e8 = &puStack_104;" (assignment_expression "ppuStack_e8 = &puStack_104" identifier = (pointer_expression "&puStack_104" & identifier)) ;) (expression_statement "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);" (assignment_expression "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd144))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd144)" * (pointer_expression "*(code **)(pcVar21 + 0xcd144)" * (cast_expression "(code **)(pcVar21 + 0xcd144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd144)" ( (binary_expression "pcVar21 + 0xcd144" identifier + number_literal) ))))) )) (argument_list "(*puVar7,&puStack_f0,0)" ( (pointer_expression "*puVar7" * identifier) , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (if_statement "if (-1 < (int)uVar4) break;" if (parenthesized_expression "(-1 < (int)uVar4)" ( (binary_expression "-1 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4)" ( (binary_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4" (pointer_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5f0)" ( (binary_expression "pcVar21 + 0xcc5f0" identifier + number_literal) ))))))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" { (expression_statement "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);" (call_expression "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc614))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc614)" * (pointer_expression "*(code **)(pcVar21 + 0xcc614)" * (cast_expression "(code **)(pcVar21 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc614)" ( (binary_expression "pcVar21 + 0xcc614" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x5b3c)" ( (binary_expression "iVar12 + 0x5b3c" identifier + number_literal) ))) ;) })) }))) (if_statement "if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" { (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b44" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" identifier = identifier) ;) (if_statement "if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" if (parenthesized_expression "(iStack_ec != 0xc)" ( (binary_expression "iStack_ec != 0xc" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" ( (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b54" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if ((int)uVar5 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "((int)uVar5 < 0x10)" ( (binary_expression "(int)uVar5 < 0x10" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "uVar5 = *puVar3;" (assignment_expression "uVar5 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (if_statement "if (uVar5 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "(uVar5 < 0x10)" ( (binary_expression "uVar5 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar4 < uVar5) goto LAB_0005de70;" if (parenthesized_expression "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) (expression_statement "puVar18 = puVar3;" (assignment_expression "puVar18 = puVar3" identifier = identifier) ;) (do_statement "do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );" do (compound_statement "{\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  }" { (if_statement "if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" if (parenthesized_expression "(((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8]))" ( (binary_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])" (parenthesized_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2]))" ( (binary_expression "(iStack_f8 == 0) && (puVar18[3] == puVar7[2])" (parenthesized_expression "(iStack_f8 == 0)" ( (binary_expression "iStack_f8 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar18[3] == puVar7[2])" ( (binary_expression "puVar18[3] == puVar7[2]" (subscript_expression "puVar18[3]" identifier [ number_literal ]) == (subscript_expression "puVar7[2]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar18[2] == puVar7[8])" ( (binary_expression "puVar18[2] == puVar7[8]" (subscript_expression "puVar18[2]" identifier [ number_literal ]) == (subscript_expression "puVar7[8]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" { (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar18 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" { (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;) (if_statement "if (iStack_d4 == *piVar17) {\n          return 0;\n        }" if (parenthesized_expression "(iStack_d4 == *piVar17)" ( (binary_expression "iStack_d4 == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(**(code **)(pcVar21 + 0xcd4a4))();" (call_expression "(**(code **)(pcVar21 + 0xcd4a4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd4a4))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd4a4)" * (pointer_expression "*(code **)(pcVar21 + 0xcd4a4)" * (cast_expression "(code **)(pcVar21 + 0xcd4a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd4a4)" ( (binary_expression "pcVar21 + 0xcd4a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);" statement_identifier : (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;)) (do_statement "do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );" do (compound_statement "{\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        }" { (expression_statement "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);" (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" ( (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x54d0" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" statement_identifier : (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b70" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0005df00:\n          (*pcVar20)(iVar12);" statement_identifier : (expression_statement "(*pcVar20)(iVar12);" (call_expression "(*pcVar20)(iVar12)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar12)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar18 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" { (if_statement "if (uVar5 < 0x24) goto LAB_0005df2c;" if (parenthesized_expression "(uVar5 < 0x24)" ( (binary_expression "uVar5 < 0x24" identifier < number_literal) )) (goto_statement "goto LAB_0005df2c;" goto statement_identifier ;)) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc614);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc614)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc614)" * (cast_expression "(code **)(pcVar21 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc614)" ( (binary_expression "pcVar21 + 0xcc614" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b80" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];" (assignment_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4]" (pointer_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5f0)" ( (binary_expression "pcVar21 + 0xcc5f0" identifier + number_literal) ))))))) = (unary_expression "-puVar18[4]" - (subscript_expression "puVar18[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);" (assignment_expression "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" identifier = (call_expression "(*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" (parenthesized_expression "(*(code *)ppuVar9)" ( (pointer_expression "*(code *)ppuVar9" * (cast_expression "(code *)ppuVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_fc,puVar18,uVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0005df48;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0005df48;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) })) (expression_statement "uVar5 = *puVar18 + 3 & uVar13;" (assignment_expression "uVar5 = *puVar18 + 3 & uVar13" identifier = (binary_expression "*puVar18 + 3 & uVar13" (binary_expression "*puVar18 + 3" (pointer_expression "*puVar18" * identifier) + number_literal) & identifier)) ;) (expression_statement "uVar4 = uVar4 - uVar5;" (assignment_expression "uVar4 = uVar4 - uVar5" identifier = (binary_expression "uVar4 - uVar5" identifier - identifier)) ;) (expression_statement "puVar18 = (uint *)((int)puVar18 + uVar5);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + uVar5)" identifier = (cast_expression "(uint *)((int)puVar18 + uVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + uVar5)" ( (binary_expression "(int)puVar18 + uVar5" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" if (parenthesized_expression "((int)uVar4 < 0x10)" ( (binary_expression "(int)uVar4 < 0x10" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" { (if_statement "if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" if (parenthesized_expression "((uStack_d8 & 0x20) == 0)" ( (binary_expression "(uStack_d8 & 0x20) == 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }" { (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 != 0) goto LAB_0005deac;" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005deac;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" else (compound_statement "{\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" { (labeled_statement "LAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);" statement_identifier : (expression_statement "(*pcVar20)(iVar16 + 0x5b94);" (call_expression "(*pcVar20)(iVar16 + 0x5b94)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar16 + 0x5b94)" ( (binary_expression "iVar16 + 0x5b94" identifier + number_literal) ))) ;)) }))) (goto_statement "goto LAB_0005dcc4;" goto statement_identifier ;) })) (expression_statement "uVar5 = *puVar18;" (assignment_expression "uVar5 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar8 = (uint)(uVar4 < uVar5);" (assignment_expression "uVar8 = (uint)(uVar4 < uVar5)" identifier = (call_expression "(uint)(uVar4 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )))) ;) (if_statement "if (0xf < uVar5) goto LAB_0005deb8;" if (parenthesized_expression "(0xf < uVar5)" ( (binary_expression "0xf < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_0005deb8;" goto statement_identifier ;)) (labeled_statement "LAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);" statement_identifier : (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;)) (while_statement "while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" { (if_statement "if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;" if (parenthesized_expression "((uStack_d8 & 0x20) != 0)" ( (binary_expression "(uStack_d8 & 0x20) != 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0005de80;" goto statement_identifier ;)) (labeled_statement "LAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;" statement_identifier : (expression_statement "uVar8 = iVar6 + 0x5ba8;" (assignment_expression "uVar8 = iVar6 + 0x5ba8" identifier = (binary_expression "iVar6 + 0x5ba8" identifier + number_literal)) ;)) (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(uVar8,uVar4)" ( identifier , identifier )))) ;) (labeled_statement "LAB_0005deb8:\n      if (uVar8 == 0) break;" statement_identifier : (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int xrtnl_wilddump_request(rtnl_handle *rth,int family,int type)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  anon_struct_20_2_de335fbd *buf;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int *piVar16;\n  uint *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  anon_struct_20_2_de335fbd req;\n  \n  req.nlh.nlmsg_seq = rth->seq + 1;\n  rth->seq = req.nlh.nlmsg_seq;\n  rth->dump = req.nlh.nlmsg_seq;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  req.nlh.nlmsg_len = 0x14;\n  iVar12 = 0x301;\n  req.nlh.nlmsg_type = (__u16)type;\n  uVar10 = 0x14;\n  req.g.rtgen_family = (uchar)family;\n  buf = &req;\n  req.nlh.nlmsg_flags = 0x301;\n  req.nlh.nlmsg_pid = 0;\n  puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  iVar3 = rtnl_send(rth,(char *)buf,0x14);\n  uStack_88 = SUB42(buf,0);\n  if (puVar2 == *(undefined4 **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = rtnl_dump_request;\n  puVar18 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar19 = *(code **)(puVar18 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar2[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar18 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar2[7] = iStack_84;\n  puVar2[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar20;\n  iVar3 = (*pcVar19)(*puVar2);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return iVar3;\n  }\n  pcVar20 = *(code **)(puVar18 + 0xcd594);\n  puVar2 = puStack_44;\n  (*pcVar20)();\n  pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n  piVar16 = *(int **)(pcVar20 + 0xcd528);\n  iStack_d4 = *piVar16;\n  puStack_d0 = puVar15;\n  puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar12 = *(int *)(pcVar20 + 0xcc568);\n  iVar3 = *(int *)(pcVar20 + 0xcc568);\n  puStack_104 = puVar4;\nLAB_0005dcc4:\n  while( true ) {\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }\n  if (uVar5 == 0) {\n    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar6 = uVar5;\n  if (iStack_ec != 0xc) {\n    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar6 < 0x10) goto LAB_0005de70;\n  uVar6 = *puVar4;\n  if (uVar6 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar5 < uVar6) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar17 = puVar4;\n  do {\n    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar6 = *puVar17 + 3 & uVar13;\n    uVar5 = uVar5 - uVar6;\n    puVar17 = (uint *)((int)puVar17 + uVar6);\n    if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar6 = *puVar17;\n    uVar8 = (uint)(uVar5 < uVar6);\n    if (0xf < uVar6) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }\n  } while( true );\n}\n\n" (function_definition "int xrtnl_wilddump_request(rtnl_handle *rth,int family,int type)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  anon_struct_20_2_de335fbd *buf;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int *piVar16;\n  uint *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  anon_struct_20_2_de335fbd req;\n  \n  req.nlh.nlmsg_seq = rth->seq + 1;\n  rth->seq = req.nlh.nlmsg_seq;\n  rth->dump = req.nlh.nlmsg_seq;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  req.nlh.nlmsg_len = 0x14;\n  iVar12 = 0x301;\n  req.nlh.nlmsg_type = (__u16)type;\n  uVar10 = 0x14;\n  req.g.rtgen_family = (uchar)family;\n  buf = &req;\n  req.nlh.nlmsg_flags = 0x301;\n  req.nlh.nlmsg_pid = 0;\n  puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  iVar3 = rtnl_send(rth,(char *)buf,0x14);\n  uStack_88 = SUB42(buf,0);\n  if (puVar2 == *(undefined4 **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = rtnl_dump_request;\n  puVar18 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar19 = *(code **)(puVar18 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar2[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar18 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar2[7] = iStack_84;\n  puVar2[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar20;\n  iVar3 = (*pcVar19)(*puVar2);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return iVar3;\n  }\n  pcVar20 = *(code **)(puVar18 + 0xcd594);\n  puVar2 = puStack_44;\n  (*pcVar20)();\n  pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n  piVar16 = *(int **)(pcVar20 + 0xcd528);\n  iStack_d4 = *piVar16;\n  puStack_d0 = puVar15;\n  puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar12 = *(int *)(pcVar20 + 0xcc568);\n  iVar3 = *(int *)(pcVar20 + 0xcc568);\n  puStack_104 = puVar4;\nLAB_0005dcc4:\n  while( true ) {\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }\n  if (uVar5 == 0) {\n    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar6 = uVar5;\n  if (iStack_ec != 0xc) {\n    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar6 < 0x10) goto LAB_0005de70;\n  uVar6 = *puVar4;\n  if (uVar6 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar5 < uVar6) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar17 = puVar4;\n  do {\n    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar6 = *puVar17 + 3 & uVar13;\n    uVar5 = uVar5 - uVar6;\n    puVar17 = (uint *)((int)puVar17 + uVar6);\n    if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar6 = *puVar17;\n    uVar8 = (uint)(uVar5 < uVar6);\n    if (0xf < uVar6) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }\n  } while( true );\n}" primitive_type (function_declarator "xrtnl_wilddump_request(rtnl_handle *rth,int family,int type)" identifier (parameter_list "(rtnl_handle *rth,int family,int type)" ( (parameter_declaration "rtnl_handle *rth" type_identifier (pointer_declarator "*rth" * identifier)) , (parameter_declaration "int family" primitive_type identifier) , (parameter_declaration "int type" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  uint uVar8;\n  anon_struct_20_2_de335fbd *buf;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int *piVar16;\n  uint *puVar17;\n  undefined *puVar18;\n  code *pcVar19;\n  code *pcVar20;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  anon_struct_20_2_de335fbd req;\n  \n  req.nlh.nlmsg_seq = rth->seq + 1;\n  rth->seq = req.nlh.nlmsg_seq;\n  rth->dump = req.nlh.nlmsg_seq;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  req.nlh.nlmsg_len = 0x14;\n  iVar12 = 0x301;\n  req.nlh.nlmsg_type = (__u16)type;\n  uVar10 = 0x14;\n  req.g.rtgen_family = (uchar)family;\n  buf = &req;\n  req.nlh.nlmsg_flags = 0x301;\n  req.nlh.nlmsg_pid = 0;\n  puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  iVar3 = rtnl_send(rth,(char *)buf,0x14);\n  uStack_88 = SUB42(buf,0);\n  if (puVar2 == *(undefined4 **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = rtnl_dump_request;\n  puVar18 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar19 = *(code **)(puVar18 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar2[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar18 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar2[7] = iStack_84;\n  puVar2[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar20;\n  iVar3 = (*pcVar19)(*puVar2);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return iVar3;\n  }\n  pcVar20 = *(code **)(puVar18 + 0xcd594);\n  puVar2 = puStack_44;\n  (*pcVar20)();\n  pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n  piVar16 = *(int **)(pcVar20 + 0xcd528);\n  iStack_d4 = *piVar16;\n  puStack_d0 = puVar15;\n  puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar12 = *(int *)(pcVar20 + 0xcc568);\n  iVar3 = *(int *)(pcVar20 + 0xcc568);\n  puStack_104 = puVar4;\nLAB_0005dcc4:\n  while( true ) {\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }\n  if (uVar5 == 0) {\n    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar6 = uVar5;\n  if (iStack_ec != 0xc) {\n    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar6 < 0x10) goto LAB_0005de70;\n  uVar6 = *puVar4;\n  if (uVar6 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar5 < uVar6) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar17 = puVar4;\n  do {\n    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar6 = *puVar17 + 3 & uVar13;\n    uVar5 = uVar5 - uVar6;\n    puVar17 = (uint *)((int)puVar17 + uVar6);\n    if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar6 = *puVar17;\n    uVar8 = (uint)(uVar5 < uVar6);\n    if (0xf < uVar6) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "anon_struct_20_2_de335fbd *buf;" type_identifier (pointer_declarator "*buf" * identifier) ;) (declaration "undefined4 **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *in_t4;" type_identifier (pointer_declarator "*in_t4" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint *puStack_104;" type_identifier (pointer_declarator "*puStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "uint **ppuStack_e8;" type_identifier (pointer_declarator "**ppuStack_e8" * (pointer_declarator "*ppuStack_e8" * identifier)) ;) (declaration "undefined4 uStack_e4;" type_identifier identifier ;) (declaration "undefined4 uStack_e0;" type_identifier identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "undefined2 uStack_88;" type_identifier identifier ;) (declaration "undefined2 uStack_86;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined4 *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "uint **ppuStack_74;" type_identifier (pointer_declarator "**ppuStack_74" * (pointer_declarator "*ppuStack_74" * identifier)) ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "undefined4 uStack_60;" type_identifier identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "undefined4 uStack_50;" type_identifier identifier ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "undefined4 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "undefined *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (declaration "anon_struct_20_2_de335fbd req;" type_identifier identifier ;) (expression_statement "req.nlh.nlmsg_seq = rth->seq + 1;" (assignment_expression "req.nlh.nlmsg_seq = rth->seq + 1" (field_expression "req.nlh.nlmsg_seq" (field_expression "req.nlh" identifier . field_identifier) . field_identifier) = (binary_expression "rth->seq + 1" (field_expression "rth->seq" identifier -> field_identifier) + number_literal)) ;) (expression_statement "rth->seq = req.nlh.nlmsg_seq;" (assignment_expression "rth->seq = req.nlh.nlmsg_seq" (field_expression "rth->seq" identifier -> field_identifier) = (field_expression "req.nlh.nlmsg_seq" (field_expression "req.nlh" identifier . field_identifier) . field_identifier)) ;) (expression_statement "rth->dump = req.nlh.nlmsg_seq;" (assignment_expression "rth->dump = req.nlh.nlmsg_seq" (field_expression "rth->dump" identifier -> field_identifier) = (field_expression "req.nlh.nlmsg_seq" (field_expression "req.nlh" identifier . field_identifier) . field_identifier)) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "req.nlh.nlmsg_len = 0x14;" (assignment_expression "req.nlh.nlmsg_len = 0x14" (field_expression "req.nlh.nlmsg_len" (field_expression "req.nlh" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "iVar12 = 0x301;" (assignment_expression "iVar12 = 0x301" identifier = number_literal) ;) (expression_statement "req.nlh.nlmsg_type = (__u16)type;" (assignment_expression "req.nlh.nlmsg_type = (__u16)type" (field_expression "req.nlh.nlmsg_type" (field_expression "req.nlh" identifier . field_identifier) . field_identifier) = (cast_expression "(__u16)type" ( (type_descriptor "__u16" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = 0x14;" (assignment_expression "uVar10 = 0x14" identifier = number_literal) ;) (expression_statement "req.g.rtgen_family = (uchar)family;" (assignment_expression "req.g.rtgen_family = (uchar)family" (field_expression "req.g.rtgen_family" (field_expression "req.g" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar)family" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "buf = &req;" (assignment_expression "buf = &req" identifier = (pointer_expression "&req" & identifier)) ;) (expression_statement "req.nlh.nlmsg_flags = 0x301;" (assignment_expression "req.nlh.nlmsg_flags = 0x301" (field_expression "req.nlh.nlmsg_flags" (field_expression "req.nlh" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "req.nlh.nlmsg_pid = 0;" (assignment_expression "req.nlh.nlmsg_pid = 0" (field_expression "req.nlh.nlmsg_pid" (field_expression "req.nlh" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar2 = *(undefined4 **)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0012b14c" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar3 = rtnl_send(rth,(char *)buf,0x14);" (assignment_expression "iVar3 = rtnl_send(rth,(char *)buf,0x14)" identifier = (call_expression "rtnl_send(rth,(char *)buf,0x14)" identifier (argument_list "(rth,(char *)buf,0x14)" ( identifier , (cast_expression "(char *)buf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "uStack_88 = SUB42(buf,0);" (assignment_expression "uStack_88 = SUB42(buf,0)" identifier = (call_expression "SUB42(buf,0)" identifier (argument_list "(buf,0)" ( identifier , number_literal )))) ;) (if_statement "if (puVar2 == *(undefined4 **)puVar1) {\n    return iVar3;\n  }" if (parenthesized_expression "(puVar2 == *(undefined4 **)puVar1)" ( (binary_expression "puVar2 == *(undefined4 **)puVar1" identifier == (pointer_expression "*(undefined4 **)puVar1" * (cast_expression "(undefined4 **)puVar1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar20 = rtnl_dump_request;" (assignment_expression "pcVar20 = rtnl_dump_request" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar18 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(puVar18 + 0xcd2a0);" (assignment_expression "pcVar19 = *(code **)(puVar18 + 0xcd2a0)" identifier = (pointer_expression "*(code **)(puVar18 + 0xcd2a0)" * (cast_expression "(code **)(puVar18 + 0xcd2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0xcd2a0)" ( (binary_expression "puVar18 + 0xcd2a0" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = &uStack_60;" (assignment_expression "puStack_7c = &uStack_60" identifier = (pointer_expression "&uStack_60" & identifier)) ;) (expression_statement "puStack_40 = puVar1;" (assignment_expression "puStack_40 = puVar1" identifier = identifier) ;) (expression_statement "iStack_84 = puVar2[7] + 1;" (assignment_expression "iStack_84 = puVar2[7] + 1" identifier = (binary_expression "puVar2[7] + 1" (subscript_expression "puVar2[7]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puStack_54 = &uStack_8c;" (assignment_expression "puStack_54 = &uStack_8c" identifier = (pointer_expression "&uStack_8c" & identifier)) ;) (expression_statement "uStack_78 = 0xc;" (assignment_expression "uStack_78 = 0xc" identifier = number_literal) ;) (expression_statement "ppuStack_74 = &puStack_54;" (assignment_expression "ppuStack_74 = &puStack_54" identifier = (pointer_expression "&puStack_54" & identifier)) ;) (expression_statement "puVar15 = *(undefined4 **)(puVar18 + 0xcd618);" (assignment_expression "puVar15 = *(undefined4 **)(puVar18 + 0xcd618)" identifier = (pointer_expression "*(undefined4 **)(puVar18 + 0xcd618)" * (cast_expression "(undefined4 **)(puVar18 + 0xcd618)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0xcd618)" ( (binary_expression "puVar18 + 0xcd618" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = iVar12 + 0x10;" (assignment_expression "uVar13 = iVar12 + 0x10" identifier = (binary_expression "iVar12 + 0x10" identifier + number_literal)) ;) (expression_statement "uStack_70 = 2;" (assignment_expression "uStack_70 = 2" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "ppuVar9 = &puStack_7c;" (assignment_expression "ppuVar9 = &puStack_7c" identifier = (pointer_expression "&puStack_7c" & identifier)) ;) (expression_statement "puVar2[7] = iStack_84;" (assignment_expression "puVar2[7] = iStack_84" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[8] = iStack_84;" (assignment_expression "puVar2[8] = iStack_84" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_50 = 0x10;" (assignment_expression "uStack_50 = 0x10" identifier = number_literal) ;) (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" identifier = number_literal) ;) (expression_statement "uStack_60 = 0x100000;" (assignment_expression "uStack_60 = 0x100000" identifier = number_literal) ;) (expression_statement "uStack_86 = 0x301;" (assignment_expression "uStack_86 = 0x301" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)*puVar15;" (assignment_expression "puVar14 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "uStack_8c = uVar13;" (assignment_expression "uStack_8c = uVar13" identifier = identifier) ;) (expression_statement "uStack_4c = uVar10;" (assignment_expression "uStack_4c = uVar10" identifier = identifier) ;) (expression_statement "iStack_48 = iVar12;" (assignment_expression "iStack_48 = iVar12" identifier = identifier) ;) (expression_statement "puStack_44 = puVar14;" (assignment_expression "puStack_44 = puVar14" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar20;" (assignment_expression "pcStack_3c = pcVar20" identifier = identifier) ;) (expression_statement "iVar3 = (*pcVar19)(*puVar2);" (assignment_expression "iVar3 = (*pcVar19)(*puVar2)" identifier = (call_expression "(*pcVar19)(*puVar2)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(*puVar2)" ( (pointer_expression "*puVar2" * identifier) )))) ;) (if_statement "if (puStack_44 == (undefined4 *)*puVar15) {\n    return iVar3;\n  }" if (parenthesized_expression "(puStack_44 == (undefined4 *)*puVar15)" ( (binary_expression "puStack_44 == (undefined4 *)*puVar15" identifier == (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar20 = *(code **)(puVar18 + 0xcd594);" (assignment_expression "pcVar20 = *(code **)(puVar18 + 0xcd594)" identifier = (pointer_expression "*(code **)(puVar18 + 0xcd594)" * (cast_expression "(code **)(puVar18 + 0xcd594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0xcd594)" ( (binary_expression "puVar18 + 0xcd594" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = puStack_44;" (assignment_expression "puVar2 = puStack_44" identifier = identifier) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0xcc5a4);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar20 + 0xcc5a4)" * (cast_expression "(code **)(pcVar20 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5a4)" ( (binary_expression "pcVar20 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "piVar16 = *(int **)(pcVar20 + 0xcd528);" (assignment_expression "piVar16 = *(int **)(pcVar20 + 0xcd528)" identifier = (pointer_expression "*(int **)(pcVar20 + 0xcd528)" * (cast_expression "(int **)(pcVar20 + 0xcd528)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd528)" ( (binary_expression "pcVar20 + 0xcd528" identifier + number_literal) ))))) ;) (expression_statement "iStack_d4 = *piVar16;" (assignment_expression "iStack_d4 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "puStack_d0 = puVar15;" (assignment_expression "puStack_d0 = puVar15" identifier = identifier) ;) (expression_statement "puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000);" (assignment_expression "puVar4 = (uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000)" identifier = (cast_expression "(uint *)(**(code **)(pcVar20 + 0xcc60c))(0x2000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar20 + 0xcc60c))(0x2000)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcc60c))" ( (pointer_expression "**(code **)(pcVar20 + 0xcc60c)" * (pointer_expression "*(code **)(pcVar20 + 0xcc60c)" * (cast_expression "(code **)(pcVar20 + 0xcc60c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc60c)" ( (binary_expression "pcVar20 + 0xcc60c" identifier + number_literal) ))))) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uStack_100 = 0x2000;" (assignment_expression "uStack_100 = 0x2000" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcVar20 + 0xcc568);" (assignment_expression "iVar12 = *(int *)(pcVar20 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar20 + 0xcc568);" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "puStack_104 = puVar4;" (assignment_expression "puStack_104 = puVar4" identifier = identifier) ;) (labeled_statement "LAB_0005dcc4:\n  while( true ) {\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar17 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);\n    if (-1 < (int)uVar5) break;\n    if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }\n  }" { (expression_statement "puVar17 = (uint *)&DAT_0000000c;" (assignment_expression "puVar17 = (uint *)&DAT_0000000c" identifier = (cast_expression "(uint *)&DAT_0000000c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) ;) (expression_statement "iStack_ec = 0xc;" (assignment_expression "iStack_ec = 0xc" identifier = number_literal) ;) (expression_statement "uStack_e4 = 1;" (assignment_expression "uStack_e4 = 1" identifier = number_literal) ;) (expression_statement "uStack_e0 = 0;" (assignment_expression "uStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "puStack_f0 = auStack_fc;" (assignment_expression "puStack_f0 = auStack_fc" identifier = identifier) ;) (expression_statement "ppuStack_e8 = &puStack_104;" (assignment_expression "ppuStack_e8 = &puStack_104" identifier = (pointer_expression "&puStack_104" & identifier)) ;) (expression_statement "uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0);" (assignment_expression "uVar5 = (**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0)" identifier = (call_expression "(**(code **)(pcVar20 + 0xcd144))(*puVar2,&puStack_f0,0)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcd144))" ( (pointer_expression "**(code **)(pcVar20 + 0xcd144)" * (pointer_expression "*(code **)(pcVar20 + 0xcd144)" * (cast_expression "(code **)(pcVar20 + 0xcd144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd144)" ( (binary_expression "pcVar20 + 0xcd144" identifier + number_literal) ))))) )) (argument_list "(*puVar2,&puStack_f0,0)" ( (pointer_expression "*puVar2" * identifier) , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (if_statement "if (-1 < (int)uVar5) break;" if (parenthesized_expression "(-1 < (int)uVar5)" ( (binary_expression "-1 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4)" ( (binary_expression "*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0) != 4" (pointer_expression "*(int *)**(undefined4 **)(pcVar20 + 0xcc5f0)" * (cast_expression "(int *)**(undefined4 **)(pcVar20 + 0xcc5f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar20 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar20 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar20 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5f0)" ( (binary_expression "pcVar20 + 0xcc5f0" identifier + number_literal) ))))))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);\n    }" { (expression_statement "(**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c);" (call_expression "(**(code **)(pcVar20 + 0xcc614))(iVar3 + 0x5b3c)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcc614))" ( (pointer_expression "**(code **)(pcVar20 + 0xcc614)" * (pointer_expression "*(code **)(pcVar20 + 0xcc614)" * (cast_expression "(code **)(pcVar20 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc614)" ( (binary_expression "pcVar20 + 0xcc614" identifier + number_literal) ))))) )) (argument_list "(iVar3 + 0x5b3c)" ( (binary_expression "iVar3 + 0x5b3c" identifier + number_literal) ))) ;) })) }))) (if_statement "if (uVar5 == 0) {\n    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n    iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" { (expression_statement "pcVar19 = *(code **)(pcVar20 + 0xcc5a4);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar20 + 0xcc5a4)" * (cast_expression "(code **)(pcVar20 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5a4)" ( (binary_expression "pcVar20 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44;" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b44" identifier = (binary_expression "*(int *)(pcVar20 + 0xcc568) + 0x5b44" (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) (if_statement "if (iStack_ec != 0xc) {\n    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);\n  }" if (parenthesized_expression "(iStack_ec != 0xc)" ( (binary_expression "iStack_ec != 0xc" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);\n  }" { (expression_statement "uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54);" (assignment_expression "uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54)" identifier = (call_expression "(**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x5b54)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar20 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar20 + 0xcc5c0)" * (cast_expression "(code **)(pcVar20 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5c0)" ( (binary_expression "pcVar20 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0xcc568) + 0x5b54)" ( (binary_expression "*(int *)(pcVar20 + 0xcc568) + 0x5b54" (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if ((int)uVar6 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "((int)uVar6 < 0x10)" ( (binary_expression "(int)uVar6 < 0x10" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (if_statement "if (uVar6 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "(uVar6 < 0x10)" ( (binary_expression "uVar6 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar5 < uVar6) goto LAB_0005de70;" if (parenthesized_expression "(uVar5 < uVar6)" ( (binary_expression "uVar5 < uVar6" identifier < identifier) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) (expression_statement "puVar17 = puVar4;" (assignment_expression "puVar17 = puVar4" identifier = identifier) ;) (do_statement "do {\n    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar6 = *puVar17 + 3 & uVar13;\n    uVar5 = uVar5 - uVar6;\n    puVar17 = (uint *)((int)puVar17 + uVar6);\n    if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar6 = *puVar17;\n    uVar8 = (uint)(uVar5 < uVar6);\n    if (0xf < uVar6) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }\n  } while( true );" do (compound_statement "{\n    if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar6 = *puVar17 + 3 & uVar13;\n    uVar5 = uVar5 - uVar6;\n    puVar17 = (uint *)((int)puVar17 + uVar6);\n    if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar6 = *puVar17;\n    uVar8 = (uint)(uVar5 < uVar6);\n    if (0xf < uVar6) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }\n  }" { (if_statement "if (((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" if (parenthesized_expression "(((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8]))" ( (binary_expression "((iStack_f8 == 0) && (puVar17[3] == puVar2[2])) && (puVar17[2] == puVar2[8])" (parenthesized_expression "((iStack_f8 == 0) && (puVar17[3] == puVar2[2]))" ( (binary_expression "(iStack_f8 == 0) && (puVar17[3] == puVar2[2])" (parenthesized_expression "(iStack_f8 == 0)" ( (binary_expression "iStack_f8 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar17[3] == puVar2[2])" ( (binary_expression "puVar17[3] == puVar2[2]" (subscript_expression "puVar17[3]" identifier [ number_literal ]) == (subscript_expression "puVar2[2]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar17[2] == puVar2[8])" ( (binary_expression "puVar17[2] == puVar2[8]" (subscript_expression "puVar17[2]" identifier [ number_literal ]) == (subscript_expression "puVar2[8]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }\n      iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);\n      if (iVar7 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" { (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4) {\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar17 + 1) == in_t4" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar17 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar17 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 1)" ( (binary_expression "puVar17 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        if (iStack_d4 == *piVar16) {\n          return 0;\n        }\n        (**(code **)(pcVar20 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );\n      }" { (expression_statement "(**(code **)(pcVar20 + 0xcd544))(puVar4);" (call_expression "(**(code **)(pcVar20 + 0xcd544))(puVar4)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar20 + 0xcd544)" * (pointer_expression "*(code **)(pcVar20 + 0xcd544)" * (cast_expression "(code **)(pcVar20 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd544)" ( (binary_expression "pcVar20 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) (if_statement "if (iStack_d4 == *piVar16) {\n          return 0;\n        }" if (parenthesized_expression "(iStack_d4 == *piVar16)" ( (binary_expression "iStack_d4 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(**(code **)(pcVar20 + 0xcd4a4))();" (call_expression "(**(code **)(pcVar20 + 0xcd4a4))()" (parenthesized_expression "(**(code **)(pcVar20 + 0xcd4a4))" ( (pointer_expression "**(code **)(pcVar20 + 0xcd4a4)" * (pointer_expression "*(code **)(pcVar20 + 0xcd4a4)" * (cast_expression "(code **)(pcVar20 + 0xcd4a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd4a4)" ( (binary_expression "pcVar20 + 0xcd4a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005df48:\n        (**(code **)(pcVar20 + 0xcd544))(puVar4);" statement_identifier : (expression_statement "(**(code **)(pcVar20 + 0xcd544))(puVar4);" (call_expression "(**(code **)(pcVar20 + 0xcd544))(puVar4)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar20 + 0xcd544)" * (pointer_expression "*(code **)(pcVar20 + 0xcd544)" * (cast_expression "(code **)(pcVar20 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd544)" ( (binary_expression "pcVar20 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;)) (do_statement "do {\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        } while( true );" do (compound_statement "{\n          (**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);\n          iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar19)(iVar3);\n          (**(code **)(pcVar20 + 0xcd544))(puVar4);\n        }" { (expression_statement "(**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0);" (call_expression "(**(code **)(pcVar20 + 0xcc5c0))(*(int *)(pcVar20 + 0xcc568) + 0x54d0)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar20 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar20 + 0xcc5c0)" * (cast_expression "(code **)(pcVar20 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5c0)" ( (binary_expression "pcVar20 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar20 + 0xcc568) + 0x54d0)" ( (binary_expression "*(int *)(pcVar20 + 0xcc568) + 0x54d0" (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0005df2c:\n          pcVar19 = *(code **)(pcVar20 + 0xcc5a4);" statement_identifier : (expression_statement "pcVar19 = *(code **)(pcVar20 + 0xcc5a4);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar20 + 0xcc5a4)" * (cast_expression "(code **)(pcVar20 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5a4)" ( (binary_expression "pcVar20 + 0xcc5a4" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70;" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b70" identifier = (binary_expression "*(int *)(pcVar20 + 0xcc568) + 0x5b70" (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0005df00:\n          (*pcVar19)(iVar3);" statement_identifier : (expression_statement "(*pcVar19)(iVar3);" (call_expression "(*pcVar19)(iVar3)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar20 + 0xcd544))(puVar4);" (call_expression "(**(code **)(pcVar20 + 0xcd544))(puVar4)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar20 + 0xcd544)" * (pointer_expression "*(code **)(pcVar20 + 0xcd544)" * (cast_expression "(code **)(pcVar20 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcd544)" ( (binary_expression "pcVar20 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14) {\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar17 + 1) == puVar14" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar17 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar17 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 1)" ( (binary_expression "puVar17 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        if (uVar6 < 0x24) goto LAB_0005df2c;\n        pcVar19 = *(code **)(pcVar20 + 0xcc614);\n        iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];\n        goto LAB_0005df00;\n      }" { (if_statement "if (uVar6 < 0x24) goto LAB_0005df2c;" if (parenthesized_expression "(uVar6 < 0x24)" ( (binary_expression "uVar6 < 0x24" identifier < number_literal) )) (goto_statement "goto LAB_0005df2c;" goto statement_identifier ;)) (expression_statement "pcVar19 = *(code **)(pcVar20 + 0xcc614);" (assignment_expression "pcVar19 = *(code **)(pcVar20 + 0xcc614)" identifier = (pointer_expression "*(code **)(pcVar20 + 0xcc614)" * (cast_expression "(code **)(pcVar20 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc614)" ( (binary_expression "pcVar20 + 0xcc614" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80;" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0xcc568) + 0x5b80" identifier = (binary_expression "*(int *)(pcVar20 + 0xcc568) + 0x5b80" (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4];" (assignment_expression "*(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0) = -puVar17[4]" (pointer_expression "*(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0)" * (cast_expression "(uint *)**(undefined4 **)(pcVar20 + 0xcc5f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar20 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar20 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar20 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5f0)" ( (binary_expression "pcVar20 + 0xcc5f0" identifier + number_literal) ))))))) = (unary_expression "-puVar17[4]" - (subscript_expression "puVar17[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11);" (assignment_expression "iVar7 = (*(code *)ppuVar9)(auStack_fc,puVar17,uVar11)" identifier = (call_expression "(*(code *)ppuVar9)(auStack_fc,puVar17,uVar11)" (parenthesized_expression "(*(code *)ppuVar9)" ( (pointer_expression "*(code *)ppuVar9" * (cast_expression "(code *)ppuVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_fc,puVar17,uVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 < 0) goto LAB_0005df48;" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0005df48;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) })) (expression_statement "uVar6 = *puVar17 + 3 & uVar13;" (assignment_expression "uVar6 = *puVar17 + 3 & uVar13" identifier = (binary_expression "*puVar17 + 3 & uVar13" (binary_expression "*puVar17 + 3" (pointer_expression "*puVar17" * identifier) + number_literal) & identifier)) ;) (expression_statement "uVar5 = uVar5 - uVar6;" (assignment_expression "uVar5 = uVar5 - uVar6" identifier = (binary_expression "uVar5 - uVar6" identifier - identifier)) ;) (expression_statement "puVar17 = (uint *)((int)puVar17 + uVar6);" (assignment_expression "puVar17 = (uint *)((int)puVar17 + uVar6)" identifier = (cast_expression "(uint *)((int)puVar17 + uVar6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + uVar6)" ( (binary_expression "(int)puVar17 + uVar6" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((int)uVar5 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" if (parenthesized_expression "((int)uVar5 < 0x10)" ( (binary_expression "(int)uVar5 < 0x10" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" { (if_statement "if ((uStack_d8 & 0x20) == 0) {\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }" if (parenthesized_expression "((uStack_d8 & 0x20) == 0)" ( (binary_expression "(uStack_d8 & 0x20) == 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar7 = *(int *)(pcVar20 + 0xcc568);\n        if (uVar5 != 0) goto LAB_0005deac;\n      }" { (expression_statement "iVar7 = *(int *)(pcVar20 + 0xcc568);" (assignment_expression "iVar7 = *(int *)(pcVar20 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 != 0) goto LAB_0005deac;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005deac;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }" else (compound_statement "{\nLAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);\n      }" { (labeled_statement "LAB_0005de80:\n        (*pcVar19)(iVar12 + 0x5b94);" statement_identifier : (expression_statement "(*pcVar19)(iVar12 + 0x5b94);" (call_expression "(*pcVar19)(iVar12 + 0x5b94)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(iVar12 + 0x5b94)" ( (binary_expression "iVar12 + 0x5b94" identifier + number_literal) ))) ;)) }))) (goto_statement "goto LAB_0005dcc4;" goto statement_identifier ;) })) (expression_statement "uVar6 = *puVar17;" (assignment_expression "uVar6 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "uVar8 = (uint)(uVar5 < uVar6);" (assignment_expression "uVar8 = (uint)(uVar5 < uVar6)" identifier = (call_expression "(uint)(uVar5 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar6)" ( (binary_expression "uVar5 < uVar6" identifier < identifier) )))) ;) (if_statement "if (0xf < uVar6) goto LAB_0005deb8;" if (parenthesized_expression "(0xf < uVar6)" ( (binary_expression "0xf < uVar6" number_literal < identifier) )) (goto_statement "goto LAB_0005deb8;" goto statement_identifier ;)) (labeled_statement "LAB_0005de70:\n    iVar7 = *(int *)(pcVar20 + 0xcc568);" statement_identifier : (expression_statement "iVar7 = *(int *)(pcVar20 + 0xcc568);" (assignment_expression "iVar7 = *(int *)(pcVar20 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) ))))) ;)) (while_statement "while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;\n      uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar7 = *(int *)(pcVar20 + 0xcc568);\n    }" { (if_statement "if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;" if (parenthesized_expression "((uStack_d8 & 0x20) != 0)" ( (binary_expression "(uStack_d8 & 0x20) != 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0005de80;" goto statement_identifier ;)) (labeled_statement "LAB_0005deac:\n      uVar8 = iVar7 + 0x5ba8;" statement_identifier : (expression_statement "uVar8 = iVar7 + 0x5ba8;" (assignment_expression "uVar8 = iVar7 + 0x5ba8" identifier = (binary_expression "iVar7 + 0x5ba8" identifier + number_literal)) ;)) (expression_statement "uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5);" (assignment_expression "uVar6 = (**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5)" identifier = (call_expression "(**(code **)(pcVar20 + 0xcc5c0))(uVar8,uVar5)" (parenthesized_expression "(**(code **)(pcVar20 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar20 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar20 + 0xcc5c0)" * (cast_expression "(code **)(pcVar20 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0xcc5c0)" ( (binary_expression "pcVar20 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(uVar8,uVar5)" ( identifier , identifier )))) ;) (labeled_statement "LAB_0005deb8:\n      if (uVar8 == 0) break;" statement_identifier : (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar7 = *(int *)(pcVar20 + 0xcc568);" (assignment_expression "iVar7 = *(int *)(pcVar20 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar20 + 0xcc568)" * (cast_expression "(int *)(pcVar20 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0xcc568)" ( (binary_expression "pcVar20 + 0xcc568" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)" identifier (parameter_list "(int param_1,undefined1 param_2,undefined2 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) , (parameter_declaration "undefined2 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *in_t4;" type_identifier (pointer_declarator "*in_t4" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint *puStack_104;" type_identifier (pointer_declarator "*puStack_104" * identifier) ;) (declaration "undefined4 uStack_100;" type_identifier identifier ;) (declaration "undefined1 auStack_fc [4];" type_identifier (array_declarator "auStack_fc [4]" identifier [ number_literal ]) ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "undefined1 *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "uint **ppuStack_e8;" type_identifier (pointer_declarator "**ppuStack_e8" * (pointer_declarator "*ppuStack_e8" * identifier)) ;) (declaration "undefined4 uStack_e4;" type_identifier identifier ;) (declaration "undefined4 uStack_e0;" type_identifier identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "uint uStack_d8;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "undefined2 uStack_88;" type_identifier identifier ;) (declaration "undefined2 uStack_86;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined4 *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "uint **ppuStack_74;" type_identifier (pointer_declarator "**ppuStack_74" * (pointer_declarator "*ppuStack_74" * identifier)) ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "undefined4 uStack_60;" type_identifier identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "undefined4 uStack_58;" type_identifier identifier ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "undefined4 uStack_50;" type_identifier identifier ;) (declaration "undefined4 uStack_4c;" type_identifier identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "undefined4 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "undefined *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined2 local_1c;" type_identifier identifier ;) (declaration "undefined2 local_1a;" type_identifier identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined1 local_10;" type_identifier identifier ;) (declaration "undefined4 *local_c;" type_identifier (pointer_declarator "*local_c" * identifier) ;) (expression_statement "local_18 = *(int *)(param_1 + 0x1c) + 1;" (assignment_expression "local_18 = *(int *)(param_1 + 0x1c) + 1" identifier = (binary_expression "*(int *)(param_1 + 0x1c) + 1" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0x1c) = local_18;" (assignment_expression "*(int *)(param_1 + 0x1c) = local_18" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x20) = local_18;" (assignment_expression "*(int *)(param_1 + 0x20) = local_18" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_20 = 0x14;" (assignment_expression "local_20 = 0x14" identifier = number_literal) ;) (expression_statement "iVar12 = 0x301;" (assignment_expression "iVar12 = 0x301" identifier = number_literal) ;) (expression_statement "uVar10 = 0x14;" (assignment_expression "uVar10 = 0x14" identifier = number_literal) ;) (expression_statement "uStack_88 = SUB42(&local_20,0);" (assignment_expression "uStack_88 = SUB42(&local_20,0)" identifier = (call_expression "SUB42(&local_20,0)" identifier (argument_list "(&local_20,0)" ( (pointer_expression "&local_20" & identifier) , number_literal )))) ;) (expression_statement "local_1a = 0x301;" (assignment_expression "local_1a = 0x301" identifier = number_literal) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0012b14c" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_1c = param_3;" (assignment_expression "local_1c = param_3" identifier = identifier) ;) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" identifier = identifier) ;) (expression_statement "uVar2 = FUN_0005da10();" (assignment_expression "uVar2 = FUN_0005da10()" identifier = (call_expression "FUN_0005da10()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_c == *(undefined4 **)puVar1)" ( (binary_expression "local_c == *(undefined4 **)puVar1" identifier == (pointer_expression "*(undefined4 **)puVar1" * (cast_expression "(undefined4 **)puVar1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar21 = FUN_0005db34;" (assignment_expression "pcVar21 = FUN_0005db34" identifier = identifier) ;) (expression_statement "puVar7 = local_c;" (assignment_expression "puVar7 = local_c" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(puVar19 + 0xcd2a0);" (assignment_expression "pcVar20 = *(code **)(puVar19 + 0xcd2a0)" identifier = (pointer_expression "*(code **)(puVar19 + 0xcd2a0)" * (cast_expression "(code **)(puVar19 + 0xcd2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd2a0)" ( (binary_expression "puVar19 + 0xcd2a0" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = &uStack_60;" (assignment_expression "puStack_7c = &uStack_60" identifier = (pointer_expression "&uStack_60" & identifier)) ;) (expression_statement "puStack_40 = puVar1;" (assignment_expression "puStack_40 = puVar1" identifier = identifier) ;) (expression_statement "iStack_84 = puVar7[7] + 1;" (assignment_expression "iStack_84 = puVar7[7] + 1" identifier = (binary_expression "puVar7[7] + 1" (subscript_expression "puVar7[7]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puStack_54 = &uStack_8c;" (assignment_expression "puStack_54 = &uStack_8c" identifier = (pointer_expression "&uStack_8c" & identifier)) ;) (expression_statement "uStack_78 = 0xc;" (assignment_expression "uStack_78 = 0xc" identifier = number_literal) ;) (expression_statement "ppuStack_74 = &puStack_54;" (assignment_expression "ppuStack_74 = &puStack_54" identifier = (pointer_expression "&puStack_54" & identifier)) ;) (expression_statement "puVar15 = *(undefined4 **)(puVar19 + 0xcd618);" (assignment_expression "puVar15 = *(undefined4 **)(puVar19 + 0xcd618)" identifier = (pointer_expression "*(undefined4 **)(puVar19 + 0xcd618)" * (cast_expression "(undefined4 **)(puVar19 + 0xcd618)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd618)" ( (binary_expression "puVar19 + 0xcd618" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = iVar12 + 0x10;" (assignment_expression "uVar13 = iVar12 + 0x10" identifier = (binary_expression "iVar12 + 0x10" identifier + number_literal)) ;) (expression_statement "uStack_70 = 2;" (assignment_expression "uStack_70 = 2" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "ppuVar9 = &puStack_7c;" (assignment_expression "ppuVar9 = &puStack_7c" identifier = (pointer_expression "&puStack_7c" & identifier)) ;) (expression_statement "puVar7[7] = iStack_84;" (assignment_expression "puVar7[7] = iStack_84" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[8] = iStack_84;" (assignment_expression "puVar7[8] = iStack_84" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_50 = 0x10;" (assignment_expression "uStack_50 = 0x10" identifier = number_literal) ;) (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" identifier = number_literal) ;) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" identifier = number_literal) ;) (expression_statement "uStack_60 = 0x100000;" (assignment_expression "uStack_60 = 0x100000" identifier = number_literal) ;) (expression_statement "uStack_86 = 0x301;" (assignment_expression "uStack_86 = 0x301" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined4 *)*puVar15;" (assignment_expression "puVar14 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "uStack_8c = uVar13;" (assignment_expression "uStack_8c = uVar13" identifier = identifier) ;) (expression_statement "uStack_4c = uVar10;" (assignment_expression "uStack_4c = uVar10" identifier = identifier) ;) (expression_statement "iStack_48 = iVar12;" (assignment_expression "iStack_48 = iVar12" identifier = identifier) ;) (expression_statement "puStack_44 = puVar14;" (assignment_expression "puStack_44 = puVar14" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar21;" (assignment_expression "pcStack_3c = pcVar21" identifier = identifier) ;) (expression_statement "uVar2 = (*pcVar20)(*puVar7);" (assignment_expression "uVar2 = (*pcVar20)(*puVar7)" identifier = (call_expression "(*pcVar20)(*puVar7)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(*puVar7)" ( (pointer_expression "*puVar7" * identifier) )))) ;) (if_statement "if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }" if (parenthesized_expression "(puStack_44 == (undefined4 *)*puVar15)" ( (binary_expression "puStack_44 == (undefined4 *)*puVar15" identifier == (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "pcVar21 = *(code **)(puVar19 + 0xcd594);" (assignment_expression "pcVar21 = *(code **)(puVar19 + 0xcd594)" identifier = (pointer_expression "*(code **)(puVar19 + 0xcd594)" * (cast_expression "(code **)(puVar19 + 0xcd594)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0xcd594)" ( (binary_expression "puVar19 + 0xcd594" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = puStack_44;" (assignment_expression "puVar7 = puStack_44" identifier = identifier) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "piVar17 = *(int **)(pcVar21 + 0xcd528);" (assignment_expression "piVar17 = *(int **)(pcVar21 + 0xcd528)" identifier = (pointer_expression "*(int **)(pcVar21 + 0xcd528)" * (cast_expression "(int **)(pcVar21 + 0xcd528)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd528)" ( (binary_expression "pcVar21 + 0xcd528" identifier + number_literal) ))))) ;) (expression_statement "iStack_d4 = *piVar17;" (assignment_expression "iStack_d4 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "puStack_d0 = puVar15;" (assignment_expression "puStack_d0 = puVar15" identifier = identifier) ;) (expression_statement "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);" (assignment_expression "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" identifier = (cast_expression "(uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar21 + 0xcc60c))(0x2000)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc60c))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc60c)" * (pointer_expression "*(code **)(pcVar21 + 0xcc60c)" * (cast_expression "(code **)(pcVar21 + 0xcc60c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc60c)" ( (binary_expression "pcVar21 + 0xcc60c" identifier + number_literal) ))))) )) (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "uStack_100 = 0x2000;" (assignment_expression "uStack_100 = 0x2000" identifier = number_literal) ;) (expression_statement "iVar16 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar16 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (expression_statement "puStack_104 = puVar3;" (assignment_expression "puStack_104 = puVar3" identifier = identifier) ;) (labeled_statement "LAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" statement_identifier : (while_statement "while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" { (expression_statement "puVar18 = (uint *)&DAT_0000000c;" (assignment_expression "puVar18 = (uint *)&DAT_0000000c" identifier = (cast_expression "(uint *)&DAT_0000000c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) ;) (expression_statement "iStack_ec = 0xc;" (assignment_expression "iStack_ec = 0xc" identifier = number_literal) ;) (expression_statement "uStack_e4 = 1;" (assignment_expression "uStack_e4 = 1" identifier = number_literal) ;) (expression_statement "uStack_e0 = 0;" (assignment_expression "uStack_e0 = 0" identifier = number_literal) ;) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" identifier = number_literal) ;) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" identifier = number_literal) ;) (expression_statement "puStack_f0 = auStack_fc;" (assignment_expression "puStack_f0 = auStack_fc" identifier = identifier) ;) (expression_statement "ppuStack_e8 = &puStack_104;" (assignment_expression "ppuStack_e8 = &puStack_104" identifier = (pointer_expression "&puStack_104" & identifier)) ;) (expression_statement "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);" (assignment_expression "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd144))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd144)" * (pointer_expression "*(code **)(pcVar21 + 0xcd144)" * (cast_expression "(code **)(pcVar21 + 0xcd144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd144)" ( (binary_expression "pcVar21 + 0xcd144" identifier + number_literal) ))))) )) (argument_list "(*puVar7,&puStack_f0,0)" ( (pointer_expression "*puVar7" * identifier) , (pointer_expression "&puStack_f0" & identifier) , number_literal )))) ;) (if_statement "if (-1 < (int)uVar4) break;" if (parenthesized_expression "(-1 < (int)uVar4)" ( (binary_expression "-1 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4)" ( (binary_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4" (pointer_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5f0)" ( (binary_expression "pcVar21 + 0xcc5f0" identifier + number_literal) ))))))) != number_literal) )) (compound_statement "{\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" { (expression_statement "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);" (call_expression "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc614))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc614)" * (pointer_expression "*(code **)(pcVar21 + 0xcc614)" * (cast_expression "(code **)(pcVar21 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc614)" ( (binary_expression "pcVar21 + 0xcc614" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x5b3c)" ( (binary_expression "iVar12 + 0x5b3c" identifier + number_literal) ))) ;) })) }))) (if_statement "if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" { (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b44" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" identifier = identifier) ;) (if_statement "if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" if (parenthesized_expression "(iStack_ec != 0xc)" ( (binary_expression "iStack_ec != 0xc" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" ( (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b54" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal) )))) ;) })) (if_statement "if ((int)uVar5 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "((int)uVar5 < 0x10)" ( (binary_expression "(int)uVar5 < 0x10" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "uVar5 = *puVar3;" (assignment_expression "uVar5 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (if_statement "if (uVar5 < 0x10) goto LAB_0005de70;" if (parenthesized_expression "(uVar5 < 0x10)" ( (binary_expression "uVar5 < 0x10" identifier < number_literal) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar4 < uVar5) goto LAB_0005de70;" if (parenthesized_expression "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )) (goto_statement "goto LAB_0005de70;" goto statement_identifier ;)) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) (expression_statement "puVar18 = puVar3;" (assignment_expression "puVar18 = puVar3" identifier = identifier) ;) (do_statement "do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );" do (compound_statement "{\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  }" { (if_statement "if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" if (parenthesized_expression "(((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8]))" ( (binary_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])" (parenthesized_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2]))" ( (binary_expression "(iStack_f8 == 0) && (puVar18[3] == puVar7[2])" (parenthesized_expression "(iStack_f8 == 0)" ( (binary_expression "iStack_f8 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar18[3] == puVar7[2])" ( (binary_expression "puVar18[3] == puVar7[2]" (subscript_expression "puVar18[3]" identifier [ number_literal ]) == (subscript_expression "puVar7[2]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar18[2] == puVar7[8])" ( (binary_expression "puVar18[2] == puVar7[8]" (subscript_expression "puVar18[2]" identifier [ number_literal ]) == (subscript_expression "puVar7[8]" identifier [ number_literal ])) ))) )) (compound_statement "{\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" { (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar18 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" { (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;) (if_statement "if (iStack_d4 == *piVar17) {\n          return 0;\n        }" if (parenthesized_expression "(iStack_d4 == *piVar17)" ( (binary_expression "iStack_d4 == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "(**(code **)(pcVar21 + 0xcd4a4))();" (call_expression "(**(code **)(pcVar21 + 0xcd4a4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd4a4))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd4a4)" * (pointer_expression "*(code **)(pcVar21 + 0xcd4a4)" * (cast_expression "(code **)(pcVar21 + 0xcd4a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd4a4)" ( (binary_expression "pcVar21 + 0xcd4a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);" statement_identifier : (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;)) (do_statement "do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );" do (compound_statement "{\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        }" { (expression_statement "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);" (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" ( (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x54d0" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" statement_identifier : (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" * (cast_expression "(code **)(pcVar21 + 0xcc5a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5a4)" ( (binary_expression "pcVar21 + 0xcc5a4" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b70" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0005df00:\n          (*pcVar20)(iVar12);" statement_identifier : (expression_statement "(*pcVar20)(iVar12);" (call_expression "(*pcVar20)(iVar12)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar12)" ( identifier ))) ;)) (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" ( (pointer_expression "**(code **)(pcVar21 + 0xcd544)" * (pointer_expression "*(code **)(pcVar21 + 0xcd544)" * (cast_expression "(code **)(pcVar21 + 0xcd544)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcd544)" ( (binary_expression "pcVar21 + 0xcd544" identifier + number_literal) ))))) )) (argument_list "(puVar3)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" if (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14)" ( (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(puVar18 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" { (if_statement "if (uVar5 < 0x24) goto LAB_0005df2c;" if (parenthesized_expression "(uVar5 < 0x24)" ( (binary_expression "uVar5 < 0x24" identifier < number_literal) )) (goto_statement "goto LAB_0005df2c;" goto statement_identifier ;)) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc614);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc614)" identifier = (pointer_expression "*(code **)(pcVar21 + 0xcc614)" * (cast_expression "(code **)(pcVar21 + 0xcc614)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc614)" ( (binary_expression "pcVar21 + 0xcc614" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80" identifier = (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b80" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];" (assignment_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4]" (pointer_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" * (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" * (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5f0)" ( (binary_expression "pcVar21 + 0xcc5f0" identifier + number_literal) ))))))) = (unary_expression "-puVar18[4]" - (subscript_expression "puVar18[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0005df00;" goto statement_identifier ;) })) (expression_statement "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);" (assignment_expression "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" identifier = (call_expression "(*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" (parenthesized_expression "(*(code *)ppuVar9)" ( (pointer_expression "*(code *)ppuVar9" * (cast_expression "(code *)ppuVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_fc,puVar18,uVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) goto LAB_0005df48;" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0005df48;" goto statement_identifier ;)) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" identifier = (cast_expression "(undefined4 *)&SUB_00000002" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) ;) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" identifier = number_literal) ;) })) (expression_statement "uVar5 = *puVar18 + 3 & uVar13;" (assignment_expression "uVar5 = *puVar18 + 3 & uVar13" identifier = (binary_expression "*puVar18 + 3 & uVar13" (binary_expression "*puVar18 + 3" (pointer_expression "*puVar18" * identifier) + number_literal) & identifier)) ;) (expression_statement "uVar4 = uVar4 - uVar5;" (assignment_expression "uVar4 = uVar4 - uVar5" identifier = (binary_expression "uVar4 - uVar5" identifier - identifier)) ;) (expression_statement "puVar18 = (uint *)((int)puVar18 + uVar5);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + uVar5)" identifier = (cast_expression "(uint *)((int)puVar18 + uVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar18 + uVar5)" ( (binary_expression "(int)puVar18 + uVar5" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" if (parenthesized_expression "((int)uVar4 < 0x10)" ( (binary_expression "(int)uVar4 < 0x10" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" { (if_statement "if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" if (parenthesized_expression "((uStack_d8 & 0x20) == 0)" ( (binary_expression "(uStack_d8 & 0x20) == 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }" { (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 != 0) goto LAB_0005deac;" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005deac;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" else (compound_statement "{\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" { (labeled_statement "LAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);" statement_identifier : (expression_statement "(*pcVar20)(iVar16 + 0x5b94);" (call_expression "(*pcVar20)(iVar16 + 0x5b94)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(iVar16 + 0x5b94)" ( (binary_expression "iVar16 + 0x5b94" identifier + number_literal) ))) ;)) }))) (goto_statement "goto LAB_0005dcc4;" goto statement_identifier ;) })) (expression_statement "uVar5 = *puVar18;" (assignment_expression "uVar5 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "uVar8 = (uint)(uVar4 < uVar5);" (assignment_expression "uVar8 = (uint)(uVar4 < uVar5)" identifier = (call_expression "(uint)(uVar4 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar5)" ( (binary_expression "uVar4 < uVar5" identifier < identifier) )))) ;) (if_statement "if (0xf < uVar5) goto LAB_0005deb8;" if (parenthesized_expression "(0xf < uVar5)" ( (binary_expression "0xf < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_0005deb8;" goto statement_identifier ;)) (labeled_statement "LAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);" statement_identifier : (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;)) (while_statement "while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" { (if_statement "if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;" if (parenthesized_expression "((uStack_d8 & 0x20) != 0)" ( (binary_expression "(uStack_d8 & 0x20) != 0" (parenthesized_expression "(uStack_d8 & 0x20)" ( (binary_expression "uStack_d8 & 0x20" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0005de80;" goto statement_identifier ;)) (labeled_statement "LAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;" statement_identifier : (expression_statement "uVar8 = iVar6 + 0x5ba8;" (assignment_expression "uVar8 = iVar6 + 0x5ba8" identifier = (binary_expression "iVar6 + 0x5ba8" identifier + number_literal)) ;)) (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" identifier = (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" ( (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" * (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" * (cast_expression "(code **)(pcVar21 + 0xcc5c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0xcc5c0)" ( (binary_expression "pcVar21 + 0xcc5c0" identifier + number_literal) ))))) )) (argument_list "(uVar8,uVar4)" ( identifier , identifier )))) ;) (labeled_statement "LAB_0005deb8:\n      if (uVar8 == 0) break;" statement_identifier : (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" identifier = (pointer_expression "*(int *)(pcVar21 + 0xcc568)" * (cast_expression "(int *)(pcVar21 + 0xcc568)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0xcc568)" ( (binary_expression "pcVar21 + 0xcc568" identifier + number_literal) ))))) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (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) ))))))) != 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 ( (binary_expression IDENT + LIT) ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (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 ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return 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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (do_statement do (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) = (unary_expression - (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;)) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (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 )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined4 FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "FUN_0005da9c(int param_1,undefined1 param_2,undefined2 param_3)" (identifier "FUN_0005da9c") (parameter_list "(int param_1,undefined1 param_2,undefined2 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined1 param_2" (type_identifier "undefined1") (identifier "param_2")) (, ",") (parameter_declaration "undefined2 param_3" (type_identifier "undefined2") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint uVar8;\n  undefined4 **ppuVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined4 *in_t4;\n  undefined4 *puVar15;\n  int iVar16;\n  int *piVar17;\n  uint *puVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  uint *puStack_104;\n  undefined4 uStack_100;\n  undefined1 auStack_fc [4];\n  int iStack_f8;\n  undefined1 *puStack_f0;\n  int iStack_ec;\n  uint **ppuStack_e8;\n  undefined4 uStack_e4;\n  undefined4 uStack_e0;\n  undefined4 uStack_dc;\n  uint uStack_d8;\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  uint uStack_8c;\n  undefined2 uStack_88;\n  undefined2 uStack_86;\n  int iStack_84;\n  undefined4 uStack_80;\n  undefined4 *puStack_7c;\n  undefined4 uStack_78;\n  uint **ppuStack_74;\n  undefined4 uStack_70;\n  undefined4 uStack_6c;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  undefined4 uStack_60;\n  undefined4 uStack_5c;\n  undefined4 uStack_58;\n  uint *puStack_54;\n  undefined4 uStack_50;\n  undefined4 uStack_4c;\n  int iStack_48;\n  undefined4 *puStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  undefined4 local_20;\n  undefined2 local_1c;\n  undefined2 local_1a;\n  int local_18;\n  undefined4 local_14;\n  undefined1 local_10;\n  undefined4 *local_c;\n  \n  local_18 = *(int *)(param_1 + 0x1c) + 1;\n  *(int *)(param_1 + 0x1c) = local_18;\n  *(int *)(param_1 + 0x20) = local_18;\n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_20 = 0x14;\n  iVar12 = 0x301;\n  uVar10 = 0x14;\n  uStack_88 = SUB42(&local_20,0);\n  local_1a = 0x301;\n  local_14 = 0;\n  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;\n  local_1c = param_3;\n  local_10 = param_2;\n  uVar2 = FUN_0005da10();\n  if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }\n  pcVar21 = FUN_0005db34;\n  puVar7 = local_c;\n  puVar19 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  pcVar20 = *(code **)(puVar19 + 0xcd2a0);\n  puStack_7c = &uStack_60;\n  puStack_40 = puVar1;\n  iStack_84 = puVar7[7] + 1;\n  puStack_54 = &uStack_8c;\n  uStack_78 = 0xc;\n  ppuStack_74 = &puStack_54;\n  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);\n  uVar13 = iVar12 + 0x10;\n  uStack_70 = 2;\n  uVar11 = 0;\n  ppuVar9 = &puStack_7c;\n  puVar7[7] = iStack_84;\n  puVar7[8] = iStack_84;\n  uStack_50 = 0x10;\n  uStack_80 = 0;\n  uStack_6c = 0;\n  uStack_68 = 0;\n  uStack_64 = 0;\n  uStack_5c = 0;\n  uStack_58 = 0;\n  uStack_60 = 0x100000;\n  uStack_86 = 0x301;\n  puVar14 = (undefined4 *)*puVar15;\n  uStack_8c = uVar13;\n  uStack_4c = uVar10;\n  iStack_48 = iVar12;\n  puStack_44 = puVar14;\n  pcStack_3c = pcVar21;\n  uVar2 = (*pcVar20)(*puVar7);\n  if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }\n  pcVar21 = *(code **)(puVar19 + 0xcd594);\n  puVar7 = puStack_44;\n  (*pcVar21)();\n  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n  piVar17 = *(int **)(pcVar21 + 0xcd528);\n  iStack_d4 = *piVar17;\n  puStack_d0 = puVar15;\n  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);\n  uStack_100 = 0x2000;\n  iVar16 = *(int *)(pcVar21 + 0xcc568);\n  iVar12 = *(int *)(pcVar21 + 0xcc568);\n  puStack_104 = puVar3;\nLAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }\n  if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }\n  uVar5 = uVar4;\n  if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }\n  if ((int)uVar5 < 0x10) goto LAB_0005de70;\n  uVar5 = *puVar3;\n  if (uVar5 < 0x10) goto LAB_0005de70;\n  in_t4 = (undefined4 *)0x3;\n  if (uVar4 < uVar5) goto LAB_0005de70;\n  puVar14 = (undefined4 *)&SUB_00000002;\n  uVar13 = 0xfffffffc;\n  puVar18 = puVar3;\n  do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 **ppuVar9;" (type_identifier "undefined4") (pointer_declarator "**ppuVar9" (* "*") (pointer_declarator "*ppuVar9" (* "*") (identifier "ppuVar9"))) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *in_t4;" (type_identifier "undefined4") (pointer_declarator "*in_t4" (* "*") (identifier "in_t4")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "uint *puStack_104;" (type_identifier "uint") (pointer_declarator "*puStack_104" (* "*") (identifier "puStack_104")) (; ";")) (declaration "undefined4 uStack_100;" (type_identifier "undefined4") (identifier "uStack_100") (; ";")) (declaration "undefined1 auStack_fc [4];" (type_identifier "undefined1") (array_declarator "auStack_fc [4]" (identifier "auStack_fc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_f8;" (primitive_type "int") (identifier "iStack_f8") (; ";")) (declaration "undefined1 *puStack_f0;" (type_identifier "undefined1") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "int iStack_ec;" (primitive_type "int") (identifier "iStack_ec") (; ";")) (declaration "uint **ppuStack_e8;" (type_identifier "uint") (pointer_declarator "**ppuStack_e8" (* "*") (pointer_declarator "*ppuStack_e8" (* "*") (identifier "ppuStack_e8"))) (; ";")) (declaration "undefined4 uStack_e4;" (type_identifier "undefined4") (identifier "uStack_e4") (; ";")) (declaration "undefined4 uStack_e0;" (type_identifier "undefined4") (identifier "uStack_e0") (; ";")) (declaration "undefined4 uStack_dc;" (type_identifier "undefined4") (identifier "uStack_dc") (; ";")) (declaration "uint uStack_d8;" (type_identifier "uint") (identifier "uStack_d8") (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "undefined4 *puStack_d0;" (type_identifier "undefined4") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "uint uStack_8c;" (type_identifier "uint") (identifier "uStack_8c") (; ";")) (declaration "undefined2 uStack_88;" (type_identifier "undefined2") (identifier "uStack_88") (; ";")) (declaration "undefined2 uStack_86;" (type_identifier "undefined2") (identifier "uStack_86") (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "undefined4 uStack_80;" (type_identifier "undefined4") (identifier "uStack_80") (; ";")) (declaration "undefined4 *puStack_7c;" (type_identifier "undefined4") (pointer_declarator "*puStack_7c" (* "*") (identifier "puStack_7c")) (; ";")) (declaration "undefined4 uStack_78;" (type_identifier "undefined4") (identifier "uStack_78") (; ";")) (declaration "uint **ppuStack_74;" (type_identifier "uint") (pointer_declarator "**ppuStack_74" (* "*") (pointer_declarator "*ppuStack_74" (* "*") (identifier "ppuStack_74"))) (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "undefined4 uStack_6c;" (type_identifier "undefined4") (identifier "uStack_6c") (; ";")) (declaration "undefined4 uStack_68;" (type_identifier "undefined4") (identifier "uStack_68") (; ";")) (declaration "undefined4 uStack_64;" (type_identifier "undefined4") (identifier "uStack_64") (; ";")) (declaration "undefined4 uStack_60;" (type_identifier "undefined4") (identifier "uStack_60") (; ";")) (declaration "undefined4 uStack_5c;" (type_identifier "undefined4") (identifier "uStack_5c") (; ";")) (declaration "undefined4 uStack_58;" (type_identifier "undefined4") (identifier "uStack_58") (; ";")) (declaration "uint *puStack_54;" (type_identifier "uint") (pointer_declarator "*puStack_54" (* "*") (identifier "puStack_54")) (; ";")) (declaration "undefined4 uStack_50;" (type_identifier "undefined4") (identifier "uStack_50") (; ";")) (declaration "undefined4 uStack_4c;" (type_identifier "undefined4") (identifier "uStack_4c") (; ";")) (declaration "int iStack_48;" (primitive_type "int") (identifier "iStack_48") (; ";")) (declaration "undefined4 *puStack_44;" (type_identifier "undefined4") (pointer_declarator "*puStack_44" (* "*") (identifier "puStack_44")) (; ";")) (declaration "undefined *puStack_40;" (type_identifier "undefined") (pointer_declarator "*puStack_40" (* "*") (identifier "puStack_40")) (; ";")) (declaration "code *pcStack_3c;" (type_identifier "code") (pointer_declarator "*pcStack_3c" (* "*") (identifier "pcStack_3c")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined2 local_1c;" (type_identifier "undefined2") (identifier "local_1c") (; ";")) (declaration "undefined2 local_1a;" (type_identifier "undefined2") (identifier "local_1a") (; ";")) (declaration "int local_18;" (primitive_type "int") (identifier "local_18") (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined1 local_10;" (type_identifier "undefined1") (identifier "local_10") (; ";")) (declaration "undefined4 *local_c;" (type_identifier "undefined4") (pointer_declarator "*local_c" (* "*") (identifier "local_c")) (; ";")) (expression_statement "local_18 = *(int *)(param_1 + 0x1c) + 1;" (assignment_expression "local_18 = *(int *)(param_1 + 0x1c) + 1" (identifier "local_18") (= "=") (binary_expression "*(int *)(param_1 + 0x1c) + 1" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x1c) = local_18;" (assignment_expression "*(int *)(param_1 + 0x1c) = local_18" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "local_18")) (; ";")) (expression_statement "*(int *)(param_1 + 0x20) = local_18;" (assignment_expression "*(int *)(param_1 + 0x20) = local_18" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "local_18")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "local_20 = 0x14;" (assignment_expression "local_20 = 0x14" (identifier "local_20") (= "=") (number_literal "0x14")) (; ";")) (expression_statement "iVar12 = 0x301;" (assignment_expression "iVar12 = 0x301" (identifier "iVar12") (= "=") (number_literal "0x301")) (; ";")) (expression_statement "uVar10 = 0x14;" (assignment_expression "uVar10 = 0x14" (identifier "uVar10") (= "=") (number_literal "0x14")) (; ";")) (expression_statement "uStack_88 = SUB42(&local_20,0);" (assignment_expression "uStack_88 = SUB42(&local_20,0)" (identifier "uStack_88") (= "=") (call_expression "SUB42(&local_20,0)" (identifier "SUB42") (argument_list "(&local_20,0)" (( "(") (pointer_expression "&local_20" (& "&") (identifier "local_20")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_1a = 0x301;" (assignment_expression "local_1a = 0x301" (identifier "local_1a") (= "=") (number_literal "0x301")) (; ";")) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" (identifier "local_14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c" (identifier "local_c") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "local_1c = param_3;" (assignment_expression "local_1c = param_3" (identifier "local_1c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" (identifier "local_10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar2 = FUN_0005da10();" (assignment_expression "uVar2 = FUN_0005da10()" (identifier "uVar2") (= "=") (call_expression "FUN_0005da10()" (identifier "FUN_0005da10") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_c == *(undefined4 **)puVar1) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_c == *(undefined4 **)puVar1)" (( "(") (binary_expression "local_c == *(undefined4 **)puVar1" (identifier "local_c") (== "==") (pointer_expression "*(undefined4 **)puVar1" (* "*") (cast_expression "(undefined4 **)puVar1" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "pcVar21 = FUN_0005db34;" (assignment_expression "pcVar21 = FUN_0005db34" (identifier "pcVar21") (= "=") (identifier "FUN_0005db34")) (; ";")) (expression_statement "puVar7 = local_c;" (assignment_expression "puVar7 = local_c" (identifier "puVar7") (= "=") (identifier "local_c")) (; ";")) (expression_statement "puVar19 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0012b0c8" (identifier "puVar19") (= "=") (identifier "PTR___stack_chk_fail_0012b0c8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar20 = *(code **)(puVar19 + 0xcd2a0);" (assignment_expression "pcVar20 = *(code **)(puVar19 + 0xcd2a0)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar19 + 0xcd2a0)" (* "*") (cast_expression "(code **)(puVar19 + 0xcd2a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0xcd2a0)" (( "(") (binary_expression "puVar19 + 0xcd2a0" (identifier "puVar19") (+ "+") (number_literal "0xcd2a0")) () ")"))))) (; ";")) (expression_statement "puStack_7c = &uStack_60;" (assignment_expression "puStack_7c = &uStack_60" (identifier "puStack_7c") (= "=") (pointer_expression "&uStack_60" (& "&") (identifier "uStack_60"))) (; ";")) (expression_statement "puStack_40 = puVar1;" (assignment_expression "puStack_40 = puVar1" (identifier "puStack_40") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "iStack_84 = puVar7[7] + 1;" (assignment_expression "iStack_84 = puVar7[7] + 1" (identifier "iStack_84") (= "=") (binary_expression "puVar7[7] + 1" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puStack_54 = &uStack_8c;" (assignment_expression "puStack_54 = &uStack_8c" (identifier "puStack_54") (= "=") (pointer_expression "&uStack_8c" (& "&") (identifier "uStack_8c"))) (; ";")) (expression_statement "uStack_78 = 0xc;" (assignment_expression "uStack_78 = 0xc" (identifier "uStack_78") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "ppuStack_74 = &puStack_54;" (assignment_expression "ppuStack_74 = &puStack_54" (identifier "ppuStack_74") (= "=") (pointer_expression "&puStack_54" (& "&") (identifier "puStack_54"))) (; ";")) (expression_statement "puVar15 = *(undefined4 **)(puVar19 + 0xcd618);" (assignment_expression "puVar15 = *(undefined4 **)(puVar19 + 0xcd618)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(puVar19 + 0xcd618)" (* "*") (cast_expression "(undefined4 **)(puVar19 + 0xcd618)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0xcd618)" (( "(") (binary_expression "puVar19 + 0xcd618" (identifier "puVar19") (+ "+") (number_literal "0xcd618")) () ")"))))) (; ";")) (expression_statement "uVar13 = iVar12 + 0x10;" (assignment_expression "uVar13 = iVar12 + 0x10" (identifier "uVar13") (= "=") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uStack_70 = 2;" (assignment_expression "uStack_70 = 2" (identifier "uStack_70") (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppuVar9 = &puStack_7c;" (assignment_expression "ppuVar9 = &puStack_7c" (identifier "ppuVar9") (= "=") (pointer_expression "&puStack_7c" (& "&") (identifier "puStack_7c"))) (; ";")) (expression_statement "puVar7[7] = iStack_84;" (assignment_expression "puVar7[7] = iStack_84" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iStack_84")) (; ";")) (expression_statement "puVar7[8] = iStack_84;" (assignment_expression "puVar7[8] = iStack_84" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iStack_84")) (; ";")) (expression_statement "uStack_50 = 0x10;" (assignment_expression "uStack_50 = 0x10" (identifier "uStack_50") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uStack_80 = 0;" (assignment_expression "uStack_80 = 0" (identifier "uStack_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_6c = 0;" (assignment_expression "uStack_6c = 0" (identifier "uStack_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" (identifier "uStack_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" (identifier "uStack_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" (identifier "uStack_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" (identifier "uStack_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_60 = 0x100000;" (assignment_expression "uStack_60 = 0x100000" (identifier "uStack_60") (= "=") (number_literal "0x100000")) (; ";")) (expression_statement "uStack_86 = 0x301;" (assignment_expression "uStack_86 = 0x301" (identifier "uStack_86") (= "=") (number_literal "0x301")) (; ";")) (expression_statement "puVar14 = (undefined4 *)*puVar15;" (assignment_expression "puVar14 = (undefined4 *)*puVar15" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (expression_statement "uStack_8c = uVar13;" (assignment_expression "uStack_8c = uVar13" (identifier "uStack_8c") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "uStack_4c = uVar10;" (assignment_expression "uStack_4c = uVar10" (identifier "uStack_4c") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iStack_48 = iVar12;" (assignment_expression "iStack_48 = iVar12" (identifier "iStack_48") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "puStack_44 = puVar14;" (assignment_expression "puStack_44 = puVar14" (identifier "puStack_44") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pcStack_3c = pcVar21;" (assignment_expression "pcStack_3c = pcVar21" (identifier "pcStack_3c") (= "=") (identifier "pcVar21")) (; ";")) (expression_statement "uVar2 = (*pcVar20)(*puVar7);" (assignment_expression "uVar2 = (*pcVar20)(*puVar7)" (identifier "uVar2") (= "=") (call_expression "(*pcVar20)(*puVar7)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(*puVar7)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) () ")")))) (; ";")) (if_statement "if (puStack_44 == (undefined4 *)*puVar15) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(puStack_44 == (undefined4 *)*puVar15)" (( "(") (binary_expression "puStack_44 == (undefined4 *)*puVar15" (identifier "puStack_44") (== "==") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "pcVar21 = *(code **)(puVar19 + 0xcd594);" (assignment_expression "pcVar21 = *(code **)(puVar19 + 0xcd594)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puVar19 + 0xcd594)" (* "*") (cast_expression "(code **)(puVar19 + 0xcd594)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0xcd594)" (( "(") (binary_expression "puVar19 + 0xcd594" (identifier "puVar19") (+ "+") (number_literal "0xcd594")) () ")"))))) (; ";")) (expression_statement "puVar7 = puStack_44;" (assignment_expression "puVar7 = puStack_44" (identifier "puVar7") (= "=") (identifier "puStack_44")) (; ";")) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5a4)" (( "(") (binary_expression "pcVar21 + 0xcc5a4" (identifier "pcVar21") (+ "+") (number_literal "0xcc5a4")) () ")"))))) (; ";")) (expression_statement "piVar17 = *(int **)(pcVar21 + 0xcd528);" (assignment_expression "piVar17 = *(int **)(pcVar21 + 0xcd528)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(pcVar21 + 0xcd528)" (* "*") (cast_expression "(int **)(pcVar21 + 0xcd528)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd528)" (( "(") (binary_expression "pcVar21 + 0xcd528" (identifier "pcVar21") (+ "+") (number_literal "0xcd528")) () ")"))))) (; ";")) (expression_statement "iStack_d4 = *piVar17;" (assignment_expression "iStack_d4 = *piVar17" (identifier "iStack_d4") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "puStack_d0 = puVar15;" (assignment_expression "puStack_d0 = puVar15" (identifier "puStack_d0") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);" (assignment_expression "puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" (identifier "puVar3") (= "=") (cast_expression "(uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar21 + 0xcc60c))(0x2000)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc60c))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcc60c)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcc60c)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc60c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc60c)" (( "(") (binary_expression "pcVar21 + 0xcc60c" (identifier "pcVar21") (+ "+") (number_literal "0xcc60c")) () ")"))))) () ")")) (argument_list "(0x2000)" (( "(") (number_literal "0x2000") () ")"))))) (; ";")) (expression_statement "uStack_100 = 0x2000;" (assignment_expression "uStack_100 = 0x2000" (identifier "uStack_100") (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "iVar16 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar16 = *(int *)(pcVar21 + 0xcc568)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")"))))) (; ";")) (expression_statement "puStack_104 = puVar3;" (assignment_expression "puStack_104 = puVar3" (identifier "puStack_104") (= "=") (identifier "puVar3")) (; ";")) (labeled_statement "LAB_0005dcc4:\n  while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" (statement_identifier "LAB_0005dcc4") (: ":") (while_statement "while( true ) {\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar18 = (uint *)&DAT_0000000c;\n    iStack_ec = 0xc;\n    uStack_e4 = 1;\n    uStack_e0 = 0;\n    uStack_dc = 0;\n    uStack_d8 = 0;\n    puStack_f0 = auStack_fc;\n    ppuStack_e8 = &puStack_104;\n    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);\n    if (-1 < (int)uVar4) break;\n    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }\n  }" ({ "{") (expression_statement "puVar18 = (uint *)&DAT_0000000c;" (assignment_expression "puVar18 = (uint *)&DAT_0000000c" (identifier "puVar18") (= "=") (cast_expression "(uint *)&DAT_0000000c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000c" (& "&") (identifier "DAT_0000000c")))) (; ";")) (expression_statement "iStack_ec = 0xc;" (assignment_expression "iStack_ec = 0xc" (identifier "iStack_ec") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uStack_e4 = 1;" (assignment_expression "uStack_e4 = 1" (identifier "uStack_e4") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_e0 = 0;" (assignment_expression "uStack_e0 = 0" (identifier "uStack_e0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_dc = 0;" (assignment_expression "uStack_dc = 0" (identifier "uStack_dc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_d8 = 0;" (assignment_expression "uStack_d8 = 0" (identifier "uStack_d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_f0 = auStack_fc;" (assignment_expression "puStack_f0 = auStack_fc" (identifier "puStack_f0") (= "=") (identifier "auStack_fc")) (; ";")) (expression_statement "ppuStack_e8 = &puStack_104;" (assignment_expression "ppuStack_e8 = &puStack_104" (identifier "ppuStack_e8") (= "=") (pointer_expression "&puStack_104" (& "&") (identifier "puStack_104"))) (; ";")) (expression_statement "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);" (assignment_expression "uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd144))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcd144)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcd144)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcd144)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd144)" (( "(") (binary_expression "pcVar21 + 0xcd144" (identifier "pcVar21") (+ "+") (number_literal "0xcd144")) () ")"))))) () ")")) (argument_list "(*puVar7,&puStack_f0,0)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < (int)uVar4) break;" (if "if") (parenthesized_expression "(-1 < (int)uVar4)" (( "(") (binary_expression "-1 < (int)uVar4" (number_literal "-1") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" (if "if") (parenthesized_expression "(*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4)" (( "(") (binary_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4" (pointer_expression "*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (cast_expression "(int *)**(undefined4 **)(pcVar21 + 0xcc5f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5f0)" (( "(") (binary_expression "pcVar21 + 0xcc5f0" (identifier "pcVar21") (+ "+") (number_literal "0xcc5f0")) () ")"))))))) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);" (call_expression "(**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc614))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcc614)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcc614)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc614)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc614)" (( "(") (binary_expression "pcVar21 + 0xcc614" (identifier "pcVar21") (+ "+") (number_literal "0xcc614")) () ")"))))) () ")")) (argument_list "(iVar12 + 0x5b3c)" (( "(") (binary_expression "iVar12 + 0x5b3c" (identifier "iVar12") (+ "+") (number_literal "0x5b3c")) () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar4 == 0) {\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;\n    goto LAB_0005df00;\n  }" ({ "{") (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5a4)" (( "(") (binary_expression "pcVar21 + 0xcc5a4" (identifier "pcVar21") (+ "+") (number_literal "0xcc5a4")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b44" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")")))) (+ "+") (number_literal "0x5b44"))) (; ";")) (goto_statement "goto LAB_0005df00;" (goto "goto") (statement_identifier "LAB_0005df00") (; ";")) (} "}"))) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" (identifier "uVar5") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (iStack_ec != 0xc) {\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" (if "if") (parenthesized_expression "(iStack_ec != 0xc)" (( "(") (binary_expression "iStack_ec != 0xc" (identifier "iStack_ec") (!= "!=") (number_literal "0xc")) () ")")) (compound_statement "{\n    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);\n  }" ({ "{") (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5c0)" (( "(") (binary_expression "pcVar21 + 0xcc5c0" (identifier "pcVar21") (+ "+") (number_literal "0xcc5c0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x5b54)" (( "(") (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b54" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")")))) (+ "+") (number_literal "0x5b54")) () ")")))) (; ";")) (} "}"))) (if_statement "if ((int)uVar5 < 0x10) goto LAB_0005de70;" (if "if") (parenthesized_expression "((int)uVar5 < 0x10)" (( "(") (binary_expression "(int)uVar5 < 0x10" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0005de70;" (goto "goto") (statement_identifier "LAB_0005de70") (; ";"))) (expression_statement "uVar5 = *puVar3;" (assignment_expression "uVar5 = *puVar3" (identifier "uVar5") (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (if_statement "if (uVar5 < 0x10) goto LAB_0005de70;" (if "if") (parenthesized_expression "(uVar5 < 0x10)" (( "(") (binary_expression "uVar5 < 0x10" (identifier "uVar5") (< "<") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0005de70;" (goto "goto") (statement_identifier "LAB_0005de70") (; ";"))) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" (identifier "in_t4") (= "=") (cast_expression "(undefined4 *)0x3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (if_statement "if (uVar4 < uVar5) goto LAB_0005de70;" (if "if") (parenthesized_expression "(uVar4 < uVar5)" (( "(") (binary_expression "uVar4 < uVar5" (identifier "uVar4") (< "<") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_0005de70;" (goto "goto") (statement_identifier "LAB_0005de70") (; ";"))) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)&SUB_00000002" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&SUB_00000002" (& "&") (identifier "SUB_00000002")))) (; ";")) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" (identifier "uVar13") (= "=") (number_literal "0xfffffffc")) (; ";")) (expression_statement "puVar18 = puVar3;" (assignment_expression "puVar18 = puVar3" (identifier "puVar18") (= "=") (identifier "puVar3")) (; ";")) (do_statement "do {\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }\n    uVar5 = *puVar18 + 3 & uVar13;\n    uVar4 = uVar4 - uVar5;\n    puVar18 = (uint *)((int)puVar18 + uVar5);\n    if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }\n    uVar5 = *puVar18;\n    uVar8 = (uint)(uVar4 < uVar5);\n    if (0xf < uVar5) goto LAB_0005deb8;\nLAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);\n    while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }\n  }" ({ "{") (if_statement "if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" (if "if") (parenthesized_expression "(((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8]))" (( "(") (binary_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])" (parenthesized_expression "((iStack_f8 == 0) && (puVar18[3] == puVar7[2]))" (( "(") (binary_expression "(iStack_f8 == 0) && (puVar18[3] == puVar7[2])" (parenthesized_expression "(iStack_f8 == 0)" (( "(") (binary_expression "iStack_f8 == 0" (identifier "iStack_f8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar18[3] == puVar7[2])" (( "(") (binary_expression "puVar18[3] == puVar7[2]" (subscript_expression "puVar18[3]" (identifier "puVar18") ([ "[") (number_literal "3") (] "]")) (== "==") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar18[2] == puVar7[8])" (( "(") (binary_expression "puVar18[2] == puVar7[8]" (subscript_expression "puVar18[2]" (identifier "puVar18") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]"))) () ")"))) () ")")) (compound_statement "{\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }\n      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }\n      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);\n      if (iVar6 < 0) goto LAB_0005df48;\n      in_t4 = (undefined4 *)0x3;\n      puVar14 = (undefined4 *)&SUB_00000002;\n      uVar13 = 0xfffffffc;\n    }" ({ "{") (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" (if "if") (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4)" (( "(") (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(puVar18 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 1)" (( "(") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1")) () ")")))) (== "==") (identifier "in_t4")) () ")")) (compound_statement "{\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        if (iStack_d4 == *piVar17) {\n          return 0;\n        }\n        (**(code **)(pcVar21 + 0xcd4a4))();\nLAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );\n      }" ({ "{") (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcd544)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcd544)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcd544)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd544)" (( "(") (binary_expression "pcVar21 + 0xcd544" (identifier "pcVar21") (+ "+") (number_literal "0xcd544")) () ")"))))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (if_statement "if (iStack_d4 == *piVar17) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iStack_d4 == *piVar17)" (( "(") (binary_expression "iStack_d4 == *piVar17" (identifier "iStack_d4") (== "==") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar21 + 0xcd4a4))();" (call_expression "(**(code **)(pcVar21 + 0xcd4a4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd4a4))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcd4a4)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcd4a4)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcd4a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd4a4)" (( "(") (binary_expression "pcVar21 + 0xcd4a4" (identifier "pcVar21") (+ "+") (number_literal "0xcd4a4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0005df48:\n        (**(code **)(pcVar21 + 0xcd544))(puVar3);" (statement_identifier "LAB_0005df48") (: ":") (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcd544)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcd544)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcd544)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd544)" (( "(") (binary_expression "pcVar21 + 0xcd544" (identifier "pcVar21") (+ "+") (number_literal "0xcd544")) () ")"))))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";"))) (do_statement "do {\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        } while( true );" (do "do") (compound_statement "{\n          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);\nLAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);\n          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;\nLAB_0005df00:\n          (*pcVar20)(iVar12);\n          (**(code **)(pcVar21 + 0xcd544))(puVar3);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);" (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5c0)" (( "(") (binary_expression "pcVar21 + 0xcc5c0" (identifier "pcVar21") (+ "+") (number_literal "0xcc5c0")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar21 + 0xcc568) + 0x54d0)" (( "(") (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x54d0" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")")))) (+ "+") (number_literal "0x54d0")) () ")"))) (; ";")) (labeled_statement "LAB_0005df2c:\n          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (statement_identifier "LAB_0005df2c") (: ":") (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc5a4);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc5a4)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar21 + 0xcc5a4)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5a4)" (( "(") (binary_expression "pcVar21 + 0xcc5a4" (identifier "pcVar21") (+ "+") (number_literal "0xcc5a4")) () ")"))))) (; ";"))) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b70" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")")))) (+ "+") (number_literal "0x5b70"))) (; ";")) (labeled_statement "LAB_0005df00:\n          (*pcVar20)(iVar12);" (statement_identifier "LAB_0005df00") (: ":") (expression_statement "(*pcVar20)(iVar12);" (call_expression "(*pcVar20)(iVar12)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar21 + 0xcd544))(puVar3);" (call_expression "(**(code **)(pcVar21 + 0xcd544))(puVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcd544))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcd544)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcd544)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcd544)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcd544)" (( "(") (binary_expression "pcVar21 + 0xcd544" (identifier "pcVar21") (+ "+") (number_literal "0xcd544")) () ")"))))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" (if "if") (parenthesized_expression "((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14)" (( "(") (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14" (binary_expression "(undefined4 *)(uint)*(ushort *)(puVar18 + 1)" (cast_expression "(undefined4 *)(uint)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(puVar18 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 1)" (( "(") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1")) () ")")))) (== "==") (identifier "puVar14")) () ")")) (compound_statement "{\n        if (uVar5 < 0x24) goto LAB_0005df2c;\n        pcVar20 = *(code **)(pcVar21 + 0xcc614);\n        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;\n        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];\n        goto LAB_0005df00;\n      }" ({ "{") (if_statement "if (uVar5 < 0x24) goto LAB_0005df2c;" (if "if") (parenthesized_expression "(uVar5 < 0x24)" (( "(") (binary_expression "uVar5 < 0x24" (identifier "uVar5") (< "<") (number_literal "0x24")) () ")")) (goto_statement "goto LAB_0005df2c;" (goto "goto") (statement_identifier "LAB_0005df2c") (; ";"))) (expression_statement "pcVar20 = *(code **)(pcVar21 + 0xcc614);" (assignment_expression "pcVar20 = *(code **)(pcVar21 + 0xcc614)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar21 + 0xcc614)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc614)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc614)" (( "(") (binary_expression "pcVar21 + 0xcc614" (identifier "pcVar21") (+ "+") (number_literal "0xcc614")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;" (assignment_expression "iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar21 + 0xcc568) + 0x5b80" (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")")))) (+ "+") (number_literal "0x5b80"))) (; ";")) (expression_statement "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];" (assignment_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4]" (pointer_expression "*(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (cast_expression "(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar21 + 0xcc5f0)" (* "*") (cast_expression "(undefined4 **)(pcVar21 + 0xcc5f0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5f0)" (( "(") (binary_expression "pcVar21 + 0xcc5f0" (identifier "pcVar21") (+ "+") (number_literal "0xcc5f0")) () ")"))))))) (= "=") (unary_expression "-puVar18[4]" (- "-") (subscript_expression "puVar18[4]" (identifier "puVar18") ([ "[") (number_literal "4") (] "]")))) (; ";")) (goto_statement "goto LAB_0005df00;" (goto "goto") (statement_identifier "LAB_0005df00") (; ";")) (} "}"))) (expression_statement "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);" (assignment_expression "iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" (identifier "iVar6") (= "=") (call_expression "(*(code *)ppuVar9)(auStack_fc,puVar18,uVar11)" (parenthesized_expression "(*(code *)ppuVar9)" (( "(") (pointer_expression "*(code *)ppuVar9" (* "*") (cast_expression "(code *)ppuVar9" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar9"))) () ")")) (argument_list "(auStack_fc,puVar18,uVar11)" (( "(") (identifier "auStack_fc") (, ",") (identifier "puVar18") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) goto LAB_0005df48;" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005df48;" (goto "goto") (statement_identifier "LAB_0005df48") (; ";"))) (expression_statement "in_t4 = (undefined4 *)0x3;" (assignment_expression "in_t4 = (undefined4 *)0x3" (identifier "in_t4") (= "=") (cast_expression "(undefined4 *)0x3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)&SUB_00000002;" (assignment_expression "puVar14 = (undefined4 *)&SUB_00000002" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)&SUB_00000002" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&SUB_00000002" (& "&") (identifier "SUB_00000002")))) (; ";")) (expression_statement "uVar13 = 0xfffffffc;" (assignment_expression "uVar13 = 0xfffffffc" (identifier "uVar13") (= "=") (number_literal "0xfffffffc")) (; ";")) (} "}"))) (expression_statement "uVar5 = *puVar18 + 3 & uVar13;" (assignment_expression "uVar5 = *puVar18 + 3 & uVar13" (identifier "uVar5") (= "=") (binary_expression "*puVar18 + 3 & uVar13" (binary_expression "*puVar18 + 3" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (+ "+") (number_literal "3")) (& "&") (identifier "uVar13"))) (; ";")) (expression_statement "uVar4 = uVar4 - uVar5;" (assignment_expression "uVar4 = uVar4 - uVar5" (identifier "uVar4") (= "=") (binary_expression "uVar4 - uVar5" (identifier "uVar4") (- "-") (identifier "uVar5"))) (; ";")) (expression_statement "puVar18 = (uint *)((int)puVar18 + uVar5);" (assignment_expression "puVar18 = (uint *)((int)puVar18 + uVar5)" (identifier "puVar18") (= "=") (cast_expression "(uint *)((int)puVar18 + uVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar18 + uVar5)" (( "(") (binary_expression "(int)puVar18 + uVar5" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (+ "+") (identifier "uVar5")) () ")")))) (; ";")) (if_statement "if ((int)uVar4 < 0x10) {\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" (if "if") (parenthesized_expression "((int)uVar4 < 0x10)" (( "(") (binary_expression "(int)uVar4 < 0x10" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n      if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }\n      goto LAB_0005dcc4;\n    }" ({ "{") (if_statement "if ((uStack_d8 & 0x20) == 0) {\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }\n      else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" (if "if") (parenthesized_expression "((uStack_d8 & 0x20) == 0)" (( "(") (binary_expression "(uStack_d8 & 0x20) == 0" (parenthesized_expression "(uStack_d8 & 0x20)" (( "(") (binary_expression "uStack_d8 & 0x20" (identifier "uStack_d8") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = *(int *)(pcVar21 + 0xcc568);\n        if (uVar4 != 0) goto LAB_0005deac;\n      }" ({ "{") (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")"))))) (; ";")) (if_statement "if (uVar4 != 0) goto LAB_0005deac;" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005deac;" (goto "goto") (statement_identifier "LAB_0005deac") (; ";"))) (} "}")) (else_clause "else {\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" (else "else") (compound_statement "{\nLAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);\n      }" ({ "{") (labeled_statement "LAB_0005de80:\n        (*pcVar20)(iVar16 + 0x5b94);" (statement_identifier "LAB_0005de80") (: ":") (expression_statement "(*pcVar20)(iVar16 + 0x5b94);" (call_expression "(*pcVar20)(iVar16 + 0x5b94)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(iVar16 + 0x5b94)" (( "(") (binary_expression "iVar16 + 0x5b94" (identifier "iVar16") (+ "+") (number_literal "0x5b94")) () ")"))) (; ";"))) (} "}")))) (goto_statement "goto LAB_0005dcc4;" (goto "goto") (statement_identifier "LAB_0005dcc4") (; ";")) (} "}"))) (expression_statement "uVar5 = *puVar18;" (assignment_expression "uVar5 = *puVar18" (identifier "uVar5") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "uVar8 = (uint)(uVar4 < uVar5);" (assignment_expression "uVar8 = (uint)(uVar4 < uVar5)" (identifier "uVar8") (= "=") (call_expression "(uint)(uVar4 < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < uVar5)" (( "(") (binary_expression "uVar4 < uVar5" (identifier "uVar4") (< "<") (identifier "uVar5")) () ")")))) (; ";")) (if_statement "if (0xf < uVar5) goto LAB_0005deb8;" (if "if") (parenthesized_expression "(0xf < uVar5)" (( "(") (binary_expression "0xf < uVar5" (number_literal "0xf") (< "<") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_0005deb8;" (goto "goto") (statement_identifier "LAB_0005deb8") (; ";"))) (labeled_statement "LAB_0005de70:\n    iVar6 = *(int *)(pcVar21 + 0xcc568);" (statement_identifier "LAB_0005de70") (: ":") (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")"))))) (; ";"))) (while_statement "while( true ) {\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;\nLAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;\n      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);\nLAB_0005deb8:\n      if (uVar8 == 0) break;\n      iVar6 = *(int *)(pcVar21 + 0xcc568);\n    }" ({ "{") (if_statement "if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;" (if "if") (parenthesized_expression "((uStack_d8 & 0x20) != 0)" (( "(") (binary_expression "(uStack_d8 & 0x20) != 0" (parenthesized_expression "(uStack_d8 & 0x20)" (( "(") (binary_expression "uStack_d8 & 0x20" (identifier "uStack_d8") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005de80;" (goto "goto") (statement_identifier "LAB_0005de80") (; ";"))) (labeled_statement "LAB_0005deac:\n      uVar8 = iVar6 + 0x5ba8;" (statement_identifier "LAB_0005deac") (: ":") (expression_statement "uVar8 = iVar6 + 0x5ba8;" (assignment_expression "uVar8 = iVar6 + 0x5ba8" (identifier "uVar8") (= "=") (binary_expression "iVar6 + 0x5ba8" (identifier "iVar6") (+ "+") (number_literal "0x5ba8"))) (; ";"))) (expression_statement "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);" (assignment_expression "uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4)" (parenthesized_expression "(**(code **)(pcVar21 + 0xcc5c0))" (( "(") (pointer_expression "**(code **)(pcVar21 + 0xcc5c0)" (* "*") (pointer_expression "*(code **)(pcVar21 + 0xcc5c0)" (* "*") (cast_expression "(code **)(pcVar21 + 0xcc5c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0xcc5c0)" (( "(") (binary_expression "pcVar21 + 0xcc5c0" (identifier "pcVar21") (+ "+") (number_literal "0xcc5c0")) () ")"))))) () ")")) (argument_list "(uVar8,uVar4)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar4") () ")")))) (; ";")) (labeled_statement "LAB_0005deb8:\n      if (uVar8 == 0) break;" (statement_identifier "LAB_0005deb8") (: ":") (if_statement "if (uVar8 == 0) break;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "iVar6 = *(int *)(pcVar21 + 0xcc568);" (assignment_expression "iVar6 = *(int *)(pcVar21 + 0xcc568)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar21 + 0xcc568)" (* "*") (cast_expression "(int *)(pcVar21 + 0xcc568)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0xcc568)" (( "(") (binary_expression "pcVar21 + 0xcc568" (identifier "pcVar21") (+ "+") (number_literal "0xcc568")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))) 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 (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) 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 (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (do_statement body: (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 (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))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) condition: (parenthesized_expression (true))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (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)))))))) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (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))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_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)))))))))) condition: (parenthesized_expression (true))))))

undefined4 MASKED(int param_1,undefined1 param_2,undefined2 param_3)

{
  undefined *puVar1;
  undefined4 uVar2;
  uint *puVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  uint uVar8;
  undefined4 **ppuVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  undefined4 *puVar14;
  undefined4 *in_t4;
  undefined4 *puVar15;
  int iVar16;
  int *piVar17;
  uint *puVar18;
  undefined *puVar19;
  code *pcVar20;
  code *pcVar21;
  uint *puStack_104;
  undefined4 uStack_100;
  undefined1 auStack_fc [4];
  int iStack_f8;
  undefined1 *puStack_f0;
  int iStack_ec;
  uint **ppuStack_e8;
  undefined4 uStack_e4;
  undefined4 uStack_e0;
  undefined4 uStack_dc;
  uint uStack_d8;
  int iStack_d4;
  undefined4 *puStack_d0;
  uint uStack_8c;
  undefined2 uStack_88;
  undefined2 uStack_86;
  int iStack_84;
  undefined4 uStack_80;
  undefined4 *puStack_7c;
  undefined4 uStack_78;
  uint **ppuStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 uStack_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  undefined4 uStack_58;
  uint *puStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  int iStack_48;
  undefined4 *puStack_44;
  undefined *puStack_40;
  code *pcStack_3c;
  undefined4 local_20;
  undefined2 local_1c;
  undefined2 local_1a;
  int local_18;
  undefined4 local_14;
  undefined1 local_10;
  undefined4 *local_c;
  
  local_18 = *(int *)(param_1 + 0x1c) + 1;
  *(int *)(param_1 + 0x1c) = local_18;
  *(int *)(param_1 + 0x20) = local_18;
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_20 = 0x14;
  iVar12 = 0x301;
  uVar10 = 0x14;
  uStack_88 = SUB42(&local_20,0);
  local_1a = 0x301;
  local_14 = 0;
  local_c = *(undefined4 **)PTR___stack_chk_guard_0012b14c;
  local_1c = param_3;
  local_10 = param_2;
  uVar2 = FUN_0005da10();
  if (local_c == *(undefined4 **)puVar1) {
    return uVar2;
  }
  pcVar21 = FUN_0005db34;
  puVar7 = local_c;
  puVar19 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  pcVar20 = *(code **)(puVar19 + 0xcd2a0);
  puStack_7c = &uStack_60;
  puStack_40 = puVar1;
  iStack_84 = puVar7[7] + 1;
  puStack_54 = &uStack_8c;
  uStack_78 = 0xc;
  ppuStack_74 = &puStack_54;
  puVar15 = *(undefined4 **)(puVar19 + 0xcd618);
  uVar13 = iVar12 + 0x10;
  uStack_70 = 2;
  uVar11 = 0;
  ppuVar9 = &puStack_7c;
  puVar7[7] = iStack_84;
  puVar7[8] = iStack_84;
  uStack_50 = 0x10;
  uStack_80 = 0;
  uStack_6c = 0;
  uStack_68 = 0;
  uStack_64 = 0;
  uStack_5c = 0;
  uStack_58 = 0;
  uStack_60 = 0x100000;
  uStack_86 = 0x301;
  puVar14 = (undefined4 *)*puVar15;
  uStack_8c = uVar13;
  uStack_4c = uVar10;
  iStack_48 = iVar12;
  puStack_44 = puVar14;
  pcStack_3c = pcVar21;
  uVar2 = (*pcVar20)(*puVar7);
  if (puStack_44 == (undefined4 *)*puVar15) {
    return uVar2;
  }
  pcVar21 = *(code **)(puVar19 + 0xcd594);
  puVar7 = puStack_44;
  (*pcVar21)();
  pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
  piVar17 = *(int **)(pcVar21 + 0xcd528);
  iStack_d4 = *piVar17;
  puStack_d0 = puVar15;
  puVar3 = (uint *)(**(code **)(pcVar21 + 0xcc60c))(0x2000);
  uStack_100 = 0x2000;
  iVar16 = *(int *)(pcVar21 + 0xcc568);
  iVar12 = *(int *)(pcVar21 + 0xcc568);
  puStack_104 = puVar3;
LAB_0005dcc4:
  while( true ) {
    puVar18 = (uint *)&DAT_0000000c;
    iStack_ec = 0xc;
    uStack_e4 = 1;
    uStack_e0 = 0;
    uStack_dc = 0;
    uStack_d8 = 0;
    puStack_f0 = auStack_fc;
    ppuStack_e8 = &puStack_104;
    uVar4 = (**(code **)(pcVar21 + 0xcd144))(*puVar7,&puStack_f0,0);
    if (-1 < (int)uVar4) break;
    if (*(int *)**(undefined4 **)(pcVar21 + 0xcc5f0) != 4) {
      (**(code **)(pcVar21 + 0xcc614))(iVar12 + 0x5b3c);
    }
  }
  if (uVar4 == 0) {
    pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
    iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b44;
    goto LAB_0005df00;
  }
  uVar5 = uVar4;
  if (iStack_ec != 0xc) {
    uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x5b54);
  }
  if ((int)uVar5 < 0x10) goto LAB_0005de70;
  uVar5 = *puVar3;
  if (uVar5 < 0x10) goto LAB_0005de70;
  in_t4 = (undefined4 *)0x3;
  if (uVar4 < uVar5) goto LAB_0005de70;
  puVar14 = (undefined4 *)&SUB_00000002;
  uVar13 = 0xfffffffc;
  puVar18 = puVar3;
  do {
    if (((iStack_f8 == 0) && (puVar18[3] == puVar7[2])) && (puVar18[2] == puVar7[8])) {
      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == in_t4) {
        (**(code **)(pcVar21 + 0xcd544))(puVar3);
        if (iStack_d4 == *piVar17) {
          return 0;
        }
        (**(code **)(pcVar21 + 0xcd4a4))();
LAB_0005df48:
        (**(code **)(pcVar21 + 0xcd544))(puVar3);
        do {
          (**(code **)(pcVar21 + 0xcc5c0))(*(int *)(pcVar21 + 0xcc568) + 0x54d0);
LAB_0005df2c:
          pcVar20 = *(code **)(pcVar21 + 0xcc5a4);
          iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b70;
LAB_0005df00:
          (*pcVar20)(iVar12);
          (**(code **)(pcVar21 + 0xcd544))(puVar3);
        } while( true );
      }
      if ((undefined4 *)(uint)*(ushort *)(puVar18 + 1) == puVar14) {
        if (uVar5 < 0x24) goto LAB_0005df2c;
        pcVar20 = *(code **)(pcVar21 + 0xcc614);
        iVar12 = *(int *)(pcVar21 + 0xcc568) + 0x5b80;
        *(uint *)**(undefined4 **)(pcVar21 + 0xcc5f0) = -puVar18[4];
        goto LAB_0005df00;
      }
      iVar6 = (*(code *)ppuVar9)(auStack_fc,puVar18,uVar11);
      if (iVar6 < 0) goto LAB_0005df48;
      in_t4 = (undefined4 *)0x3;
      puVar14 = (undefined4 *)&SUB_00000002;
      uVar13 = 0xfffffffc;
    }
    uVar5 = *puVar18 + 3 & uVar13;
    uVar4 = uVar4 - uVar5;
    puVar18 = (uint *)((int)puVar18 + uVar5);
    if ((int)uVar4 < 0x10) {
      if ((uStack_d8 & 0x20) == 0) {
        iVar6 = *(int *)(pcVar21 + 0xcc568);
        if (uVar4 != 0) goto LAB_0005deac;
      }
      else {
LAB_0005de80:
        (*pcVar20)(iVar16 + 0x5b94);
      }
      goto LAB_0005dcc4;
    }
    uVar5 = *puVar18;
    uVar8 = (uint)(uVar4 < uVar5);
    if (0xf < uVar5) goto LAB_0005deb8;
LAB_0005de70:
    iVar6 = *(int *)(pcVar21 + 0xcc568);
    while( true ) {
      if ((uStack_d8 & 0x20) != 0) goto LAB_0005de80;
LAB_0005deac:
      uVar8 = iVar6 + 0x5ba8;
      uVar5 = (**(code **)(pcVar21 + 0xcc5c0))(uVar8,uVar4);
LAB_0005deb8:
      if (uVar8 == 0) break;
      iVar6 = *(int *)(pcVar21 + 0xcc568);
    }
  } while( true );
}

