
int sg_ll_inquiry_com(sg_pt_base *ptvp,_Bool cmddt,_Bool evpd,int pg_op,void *resp,int mx_resp_len,
                     int timeout_secs,int *residp,_Bool noisy,int verbose)

{
  undefined1 *puVar1;
  uint8_t uVar2;
  uint uVar3;
  uint *puVar4;
  bool bVar5;
  undefined *puVar6;
  undefined *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  undefined3 in_register_00000014;
  undefined *puVar14;
  undefined *puVar15;
  undefined3 in_register_00000018;
  undefined1 uVar16;
  uint8_t *puVar17;
  int iVar18;
  uint8_t *puVar19;
  uint8_t *puVar20;
  int *piVar21;
  undefined2 *puVar22;
  undefined2 *puVar23;
  undefined *puVar24;
  code *pcVar25;
  code *pcVar26;
  undefined4 *puStack_1cc;
  undefined2 uStack_1c8;
  undefined1 uStack_1c6;
  undefined1 uStack_1c5;
  undefined2 uStack_1c4;
  undefined1 auStack_1c2 [4];
  undefined2 uStack_1be;
  undefined2 auStack_1bc [32];
  int iStack_17c;
  undefined4 *puStack_178;
  int iStack_174;
  uint8_t *puStack_170;
  undefined *puStack_16c;
  int *piStack_168;
  int iStack_164;
  int *piStack_160;
  uint8_t *puStack_15c;
  undefined *puStack_158;
  code *pcStack_154;
  undefined4 *puStack_140;
  uint uStack_13c;
  undefined *puStack_138;
  int *piStack_134;
  undefined *puStack_130;
  int iStack_124;
  int iStack_120;
  undefined4 uStack_11c;
  short sStack_118;
  undefined1 auStack_116 [66];
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  void *pvStack_c8;
  int iStack_c4;
  undefined *puStack_c0;
  int iStack_bc;
  int *piStack_b8;
  undefined *puStack_b4;
  int iStack_b0;
  code *pcStack_ac;
  uint8_t *puStack_98;
  uint uStack_94;
  undefined *puStack_90;
  int *piStack_8c;
  int sense_cat;
  uint8_t inq_cdb [6];
  uint8_t auStack_6e [2];
  uint8_t sense_b [64];
  
  puVar6 = PTR___stack_chk_guard_00054a4c;
  puVar15 = PTR_s_tatus_00054840;
  iVar8 = *(int *)PTR___stack_chk_guard_00054a4c;
  inq_cdb[0] = '\x12';
  inq_cdb[1] = '\0';
  if (CONCAT31(in_register_00000014,cmddt) != 0) {
    inq_cdb[0] = '\x12';
    inq_cdb[1] = '\x02';
  }
  if (CONCAT31(in_register_00000018,evpd) != 0) {
    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;
  }
  inq_cdb[2] = (char)pg_op;
  sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_);
  inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8);
  inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8;
  if (verbose != 0) {
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);
    puVar14 = PTR_LAB_0005483c + 0x1f1c;
    puVar20 = inq_cdb;
    do {
      uVar2 = *puVar20;
      puVar20 = puVar20 + 1;
      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);
    } while (puVar20 != auStack_6e);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
  }
  if (((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))
  {
    *(undefined1 *)((int)resp + 4) = 0;
  }
  if (timeout_secs < 1) {
    timeout_secs = 0x3c;
  }
  (*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6);
  (*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40);
  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len);
  iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose);
  piStack_8c = &sense_cat;
  uStack_94 = (uint)noisy;
  puVar14 = puVar15 + -0x1a58;
  puStack_90 = (undefined *)verbose;
  puVar20 = (uint8_t *)mx_resp_len;
  puStack_98 = sense_b;
  iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp);
  iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp);
  if (residp != (int *)0x0) {
    *residp = iVar11;
  }
  if (iVar10 == -1) {
    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);
    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);
  }
  else if (iVar10 == -2) {
    iVar18 = sense_cat;
    if (sense_cat - 0x14U < 2) {
      iVar18 = 0;
    }
  }
  else {
    iVar18 = 0;
    if (iVar10 < 4) {
      if (verbose == 0) {
        puVar14 = PTR_s_tatus_00054840;
        iVar18 = 0x61;
      }
      else {
        puVar14 = PTR_s_tatus_00054840 + -0x1778;
        iVar9 = iVar10;
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);
        iVar18 = 0x61;
      }
    }
  }
  if (0 < iVar11) {
    iVar9 = iVar11;
    if (mx_resp_len < iVar11) {
      puVar14 = puVar15 + -0x1a58;
      puVar20 = (uint8_t *)mx_resp_len;
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);
      if (iVar18 == 0) {
        iVar18 = 0x61;
      }
    }
    else {
      puVar14 = (undefined *)0x0;
      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));
    }
  }
  if (iVar8 == *(int *)puVar6) {
    return iVar18;
  }
  pcVar25 = sg_ll_request_sense_com;
  puVar24 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  puVar7 = puStack_90;
  puVar19 = puStack_98;
  puStack_130 = puVar24 + 0x3c858;
  puStack_c0 = puVar6;
  piVar21 = *(int **)(puVar24 + 0x34a94);
  iStack_b0 = verbose;
  puStack_b4 = puVar15;
  pvStack_c8 = resp;
  piStack_b8 = residp;
  iStack_d0 = mx_resp_len;
  uStack_11c = 0x3000000;
  sStack_118 = 0;
  iStack_d4 = *piVar21;
  if (iVar9 != 0) {
    uStack_11c = 0x3010000;
  }
  puVar17 = puVar20;
  iStack_cc = iVar18;
  iStack_c4 = iVar11;
  iStack_bc = iVar10;
  pcStack_ac = pcVar25;
  if ((int)puStack_98 < 0x100) {
    sStack_118 = (ushort)(byte)puStack_98 << 8;
    if (puStack_90 == (undefined *)0x0) {
      pcVar25 = *(code **)(puVar24 + 0x34978);
      if (iVar8 == 0) goto LAB_000201d0;
LAB_0002004c:
      residp = (int *)0x1;
    }
    else {
      (**(code **)(puVar24 + 0x34934))
                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);
      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;
      puVar13 = &uStack_11c;
      do {
        mx_resp_len = (int)puVar13 + 1;
        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);
        puVar13 = (undefined4 *)mx_resp_len;
      } while ((undefined1 *)mx_resp_len != auStack_116);
      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
      if (iVar8 != 0) goto LAB_0002004c;
      pcVar25 = *(code **)(puStack_130 + -0x7ee0);
LAB_000201d0:
      uVar16 = (undefined1)iVar9;
      residp = (int *)0x0;
      puVar15 = puVar7;
      iVar8 = (*pcVar25)(puVar14,puVar7);
      if (iVar8 == 0) {
        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);
        goto LAB_00020118;
      }
    }
    iVar10 = *(int *)(puStack_130 + -0x7fd0);
    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);
    mx_resp_len = (int)(auStack_116 + 2);
    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);
    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);
    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);
    piStack_134 = &iStack_120;
    uStack_13c = uStack_94 & 0xff;
    puVar15 = (undefined *)(iVar10 + -0x19d0);
    puStack_138 = puVar7;
    puVar17 = puVar19;
    puStack_140 = (undefined4 *)mx_resp_len;
    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);
    uVar16 = (undefined1)uVar12;
    if (iVar9 == -1) {
      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);
      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);
LAB_00020110:
      pcVar25 = *(code **)(puStack_130 + -0x7ea4);
      if (residp != (int *)0x0) goto LAB_00020118;
    }
    else {
      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);
      if (iVar9 != -2) {
        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {
          if (puVar7 == (undefined *)0x0) {
            iStack_120 = -1;
          }
          else {
            puVar15 = (undefined *)(iVar10 + -0x19d0);
            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);
            uVar16 = (undefined1)iVar9;
            iStack_120 = -1;
          }
        }
        else {
          iStack_120 = 0;
        }
        goto LAB_00020110;
      }
      if (iStack_120 - 0x14U < 2) {
        iStack_120 = 0;
      }
      if (residp != (int *)0x0) goto LAB_00020118;
      pcVar25 = *(code **)(puStack_130 + -0x7ea4);
    }
    iStack_124 = iStack_120;
    (*pcVar25)(iVar8);
    iStack_120 = iStack_124;
  }
  else {
    puVar15 = puVar14;
    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);
    uVar16 = (undefined1)iVar9;
    iStack_120 = -1;
  }
LAB_00020118:
  if (iStack_d4 == *piVar21) {
    return iStack_120;
  }
  pcVar25 = *(code **)(puStack_130 + -0x7df4);
  pcVar26 = sg_ll_report_luns_com;
  iVar9 = iStack_d4;
  (*pcVar25)();
  puVar13 = puStack_140;
  piStack_168 = piVar21;
  piVar21 = *(int **)(pcVar25 + 0x347b4);
  iStack_174 = iVar8;
  uStack_1c8 = 0xa000;
  puStack_158 = puVar14;
  iStack_17c = *piVar21;
  puStack_15c = puVar20;
  iStack_164 = iVar10;
  puStack_178 = (undefined4 *)mx_resp_len;
  pcStack_154 = pcVar26;
  piStack_160 = residp;
  puStack_16c = puVar7;
  puStack_170 = puVar19;
  uStack_1c5 = 0;
  uStack_1be = 0;
  uStack_1c6 = uVar16;
  uStack_1c4 = 0;
  puStack_1cc = puStack_140;
  uVar3 = (uint)auStack_1c2 & 3;
  puVar4 = (uint *)(auStack_1c2 + -uVar3);
  *puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8;
  puVar1 = auStack_1c2 + 3;
  uVar3 = (uint)puVar1 & 3;
  *(uint *)(puVar1 + -uVar3) =
       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8
  ;
  iVar8 = *(int *)(pcVar25 + 0x345a8);
  if (puStack_138 == (undefined *)0x0) {
    pcVar26 = *(code **)(pcVar25 + 0x347bc);
    if (iVar9 == 0) goto LAB_00020494;
LAB_00020334:
    bVar5 = true;
  }
  else {
    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);
    iVar10 = *(int *)(pcVar25 + 0x345a4);
    puVar22 = &uStack_1c8;
    do {
      puVar23 = (undefined2 *)((int)puVar22 + 1);
      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);
      puVar22 = puVar23;
    } while (auStack_1bc != puVar23);
    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);
    if (iVar9 != 0) goto LAB_00020334;
    pcVar26 = *(code **)(pcVar25 + 0x347bc);
LAB_00020494:
    iVar9 = (*pcVar26)();
    if (iVar9 == 0) {
      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);
      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);
      goto LAB_000203f8;
    }
    bVar5 = false;
  }
  (**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc);
  (**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40);
  (**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13);
  uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138);
  iVar8 = (**(code **)(pcVar25 + 0x34638))
                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,
                     &puStack_1cc);
  if (iVar8 == -1) {
    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);
    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);
LAB_000203f0:
    pcVar26 = *(code **)(pcVar25 + 0x346d4);
    if (bVar5) goto LAB_000203f8;
  }
  else {
    if (iVar8 != -2) {
      puVar13 = (undefined4 *)0x0;
      goto LAB_000203f0;
    }
    puVar13 = puStack_1cc;
    if (puStack_1cc + -5 < (undefined4 *)0x2) {
      puVar13 = (undefined4 *)0x0;
    }
    if (bVar5) goto LAB_000203f8;
    pcVar26 = *(code **)(pcVar25 + 0x346d4);
  }
  (*pcVar26)(iVar9);
LAB_000203f8:
  if (iStack_17c != *piVar21) {
    pcVar25 = *(code **)(pcVar25 + 0x34784);
    (*pcVar25)();
                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    iVar8 = (**(code **)(pcVar25 + 0x343d8))();
    return iVar8;
  }
  return (int)puVar13;
}



undefined4 *
FUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,
            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)

{
  undefined1 *puVar1;
  uint uVar2;
  uint *puVar3;
  bool bVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  int iVar11;
  undefined4 *puVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined1 uVar15;
  undefined4 *puVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  undefined3 *puVar19;
  int *piVar20;
  undefined2 *puVar21;
  undefined2 *puVar22;
  undefined *puVar23;
  code *pcVar24;
  code *pcVar25;
  undefined4 *puStack_1cc;
  undefined2 uStack_1c8;
  undefined1 uStack_1c6;
  undefined1 uStack_1c5;
  undefined2 uStack_1c4;
  undefined1 auStack_1c2 [4];
  undefined2 uStack_1be;
  undefined2 auStack_1bc [32];
  int iStack_17c;
  undefined4 *puStack_178;
  int iStack_174;
  undefined4 *puStack_170;
  undefined *puStack_16c;
  int *piStack_168;
  int iStack_164;
  int *piStack_160;
  undefined4 *puStack_15c;
  undefined *puStack_158;
  code *pcStack_154;
  undefined4 *puStack_140;
  uint uStack_13c;
  undefined *puStack_138;
  undefined4 **ppuStack_134;
  undefined *puStack_130;
  undefined4 *puStack_124;
  undefined4 *puStack_120;
  undefined4 uStack_11c;
  short sStack_118;
  undefined1 auStack_116 [66];
  int iStack_d4;
  undefined4 *puStack_d0;
  undefined4 *puStack_cc;
  undefined1 *puStack_c8;
  int iStack_c4;
  undefined *puStack_c0;
  int iStack_bc;
  int *piStack_b8;
  undefined *puStack_b4;
  undefined *puStack_b0;
  code *pcStack_ac;
  undefined4 *local_98;
  uint local_94;
  undefined *local_90;
  undefined4 **local_8c;
  undefined4 *local_78;
  undefined3 local_74;
  undefined1 uStack_71;
  short local_70;
  undefined1 auStack_6e [66];
  int local_2c;
  
  puVar5 = PTR___stack_chk_guard_00054a4c;
  puVar14 = PTR_s_tatus_00054840;
  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;
  local_74._0_2_ = 0x1200;
  if (param_2 != 0) {
    local_74._0_2_ = 0x1202;
  }
  if (param_3 != 0) {
    local_74._0_2_ = local_74._0_2_ | 1;
  }
  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);
  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));
  local_70 = (ushort)(byte)param_6 << 8;
  if (param_10 != (undefined *)0x0) {
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);
    puVar13 = PTR_LAB_0005483c + 0x1f1c;
    puVar19 = &local_74;
    do {
      uVar15 = *(undefined1 *)puVar19;
      puVar19 = (undefined3 *)((int)puVar19 + 1);
      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);
    } while (puVar19 != (undefined3 *)auStack_6e);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
  }
  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))
  {
    param_5[4] = 0;
  }
  if (param_7 < 1) {
    param_7 = 0x3c;
  }
  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);
  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);
  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);
  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);
  local_8c = &local_78;
  local_94 = (uint)param_9;
  puVar13 = puVar14 + -0x1a58;
  local_90 = param_10;
  puVar12 = param_6;
  local_98 = (undefined4 *)(auStack_6e + 2);
  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);
  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);
  if (param_8 != (int *)0x0) {
    *param_8 = iVar9;
  }
  if (iVar8 == -1) {
    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);
    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);
  }
  else if (iVar8 == -2) {
    puVar17 = local_78;
    if (local_78 + -5 < (undefined4 *)0x2) {
      puVar17 = (undefined4 *)0x0;
    }
  }
  else {
    puVar17 = (undefined4 *)0x0;
    if (iVar8 < 4) {
      if (param_10 == (undefined *)0x0) {
        puVar13 = PTR_s_tatus_00054840;
        puVar17 = (undefined4 *)0x61;
      }
      else {
        puVar13 = PTR_s_tatus_00054840 + -0x1778;
        iVar7 = iVar8;
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);
        puVar17 = (undefined4 *)0x61;
      }
    }
  }
  if (0 < iVar9) {
    iVar7 = iVar9;
    if ((int)param_6 < iVar9) {
      puVar13 = puVar14 + -0x1a58;
      puVar12 = param_6;
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);
      if (puVar17 == (undefined4 *)0x0) {
        puVar17 = (undefined4 *)0x61;
      }
    }
    else {
      puVar13 = (undefined *)0x0;
      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));
    }
  }
  if (local_2c == *(int *)puVar5) {
    return puVar17;
  }
  pcVar24 = FUN_0001ffb8;
  iVar11 = local_2c;
  puVar23 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  puVar6 = local_90;
  puVar18 = local_98;
  puStack_130 = puVar23 + 0x3c858;
  puStack_c0 = puVar5;
  piVar20 = *(int **)(puVar23 + 0x34a94);
  puStack_b0 = param_10;
  puStack_b4 = puVar14;
  puStack_c8 = param_5;
  piStack_b8 = param_8;
  puStack_d0 = param_6;
  uStack_11c = 0x3000000;
  sStack_118 = 0;
  iStack_d4 = *piVar20;
  if (iVar7 != 0) {
    uStack_11c = 0x3010000;
  }
  puVar16 = puVar12;
  puStack_cc = puVar17;
  iStack_c4 = iVar9;
  iStack_bc = iVar8;
  pcStack_ac = pcVar24;
  if ((int)local_98 < 0x100) {
    sStack_118 = (ushort)(byte)local_98 << 8;
    if (local_90 == (undefined *)0x0) {
      pcVar24 = *(code **)(puVar23 + 0x34978);
      if (iVar11 == 0) goto LAB_000201d0;
LAB_0002004c:
      param_8 = (int *)0x1;
    }
    else {
      (**(code **)(puVar23 + 0x34934))
                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);
      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;
      puVar17 = &uStack_11c;
      do {
        param_6 = (undefined4 *)((int)puVar17 + 1);
        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);
        puVar17 = param_6;
      } while (param_6 != (undefined4 *)auStack_116);
      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
      if (iVar11 != 0) goto LAB_0002004c;
      pcVar24 = *(code **)(puStack_130 + -0x7ee0);
LAB_000201d0:
      uVar15 = (undefined1)iVar7;
      param_8 = (int *)0x0;
      puVar14 = puVar6;
      iVar11 = (*pcVar24)(puVar13,puVar6);
      if (iVar11 == 0) {
        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);
        goto LAB_00020118;
      }
    }
    iVar8 = *(int *)(puStack_130 + -0x7fd0);
    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);
    param_6 = (undefined4 *)(auStack_116 + 2);
    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);
    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);
    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);
    ppuStack_134 = &puStack_120;
    uStack_13c = local_94 & 0xff;
    puVar14 = (undefined *)(iVar8 + -0x19d0);
    puStack_138 = puVar6;
    puVar16 = puVar18;
    puStack_140 = param_6;
    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);
    uVar15 = (undefined1)uVar10;
    if (iVar7 == -1) {
      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);
      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);
LAB_00020110:
      pcVar24 = *(code **)(puStack_130 + -0x7ea4);
      if (param_8 != (int *)0x0) goto LAB_00020118;
    }
    else {
      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);
      if (iVar7 != -2) {
        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {
          if (puVar6 == (undefined *)0x0) {
            puStack_120 = (undefined4 *)0xffffffff;
          }
          else {
            puVar14 = (undefined *)(iVar8 + -0x19d0);
            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);
            uVar15 = (undefined1)iVar7;
            puStack_120 = (undefined4 *)0xffffffff;
          }
        }
        else {
          puStack_120 = (undefined4 *)0x0;
        }
        goto LAB_00020110;
      }
      if (puStack_120 + -5 < (undefined4 *)0x2) {
        puStack_120 = (undefined4 *)0x0;
      }
      if (param_8 != (int *)0x0) goto LAB_00020118;
      pcVar24 = *(code **)(puStack_130 + -0x7ea4);
    }
    puStack_124 = puStack_120;
    (*pcVar24)(iVar11);
    puStack_120 = puStack_124;
  }
  else {
    puVar14 = puVar13;
    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);
    uVar15 = (undefined1)iVar7;
    puStack_120 = (undefined4 *)0xffffffff;
  }
LAB_00020118:
  if (iStack_d4 == *piVar20) {
    return puStack_120;
  }
  pcVar24 = *(code **)(puStack_130 + -0x7df4);
  pcVar25 = FUN_00020298;
  iVar7 = iStack_d4;
  (*pcVar24)();
  puVar17 = puStack_140;
  piStack_168 = piVar20;
  piVar20 = *(int **)(pcVar24 + 0x347b4);
  iStack_174 = iVar11;
  uStack_1c8 = 0xa000;
  puStack_158 = puVar13;
  iStack_17c = *piVar20;
  puStack_15c = puVar12;
  iStack_164 = iVar8;
  puStack_178 = param_6;
  pcStack_154 = pcVar25;
  piStack_160 = param_8;
  puStack_16c = puVar6;
  puStack_170 = puVar18;
  uStack_1c5 = 0;
  uStack_1be = 0;
  uStack_1c6 = uVar15;
  uStack_1c4 = 0;
  puStack_1cc = puStack_140;
  uVar2 = (uint)auStack_1c2 & 3;
  puVar3 = (uint *)(auStack_1c2 + -uVar2);
  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;
  puVar1 = auStack_1c2 + 3;
  uVar2 = (uint)puVar1 & 3;
  *(uint *)(puVar1 + -uVar2) =
       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8
  ;
  iVar8 = *(int *)(pcVar24 + 0x345a8);
  if (puStack_138 == (undefined *)0x0) {
    pcVar25 = *(code **)(pcVar24 + 0x347bc);
    if (iVar7 == 0) goto LAB_00020494;
LAB_00020334:
    bVar4 = true;
  }
  else {
    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);
    iVar9 = *(int *)(pcVar24 + 0x345a4);
    puVar21 = &uStack_1c8;
    do {
      puVar22 = (undefined2 *)((int)puVar21 + 1);
      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);
      puVar21 = puVar22;
    } while (auStack_1bc != puVar22);
    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);
    if (iVar7 != 0) goto LAB_00020334;
    pcVar25 = *(code **)(pcVar24 + 0x347bc);
LAB_00020494:
    iVar7 = (*pcVar25)();
    if (iVar7 == 0) {
      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);
      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);
      goto LAB_000203f8;
    }
    bVar4 = false;
  }
  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);
  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);
  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);
  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);
  iVar8 = (**(code **)(pcVar24 + 0x34638))
                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,
                     &puStack_1cc);
  if (iVar8 == -1) {
    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);
    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);
LAB_000203f0:
    pcVar25 = *(code **)(pcVar24 + 0x346d4);
    if (bVar4) goto LAB_000203f8;
  }
  else {
    if (iVar8 != -2) {
      puVar12 = (undefined4 *)0x0;
      goto LAB_000203f0;
    }
    puVar12 = puStack_1cc;
    if (puStack_1cc + -5 < (undefined4 *)0x2) {
      puVar12 = (undefined4 *)0x0;
    }
    if (bVar4) goto LAB_000203f8;
    pcVar25 = *(code **)(pcVar24 + 0x346d4);
  }
  (*pcVar25)(iVar7);
LAB_000203f8:
  if (iStack_17c != *piVar20) {
    pcVar24 = *(code **)(pcVar24 + 0x34784);
    (*pcVar24)();
                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();
    return puVar12;
  }
  return puVar12;
}


lui gp,0x4
addiu gp,gp,-0x3480
addu gp,gp,t9
addiu sp,sp,-0xa8
sw s4,0x90(sp)
lw s4,-0x7dc4(gp)
sw gp,0x20(sp)
sw s8,0xa0(sp)
sw s6,0x98(sp)
lw v0,0x0(s4)
lw s6,0xc4(sp)
lw s8,0xcc(sp)
sw v0,0x7c(sp)
lui v0,0x1200
sw s2,0x88(sp)
sw s1,0x84(sp)
or s1,a0,zero
sw s0,0x80(sp)
sw ra,0xa4(sp)
sw s7,0x9c(sp)
sw s5,0x94(sp)
sw s3,0x8c(sp)
sw v0,0x34(sp)
sh zero,0x38(sp)
lw s2,0xb8(sp)
beq a1,zero,0x0001fd04
_lw s0,0xbc(sp)
li v0,0x2
sb v0,0x35(sp)
beq a2,zero,0x0001fd1c
_ext v0,s0,0x8,0x8
lbu v0,0x35(sp)
ori v0,v0,0x1
sb v0,0x35(sp)
ext v0,s0,0x8,0x8
lw s7,-0x7fd0(gp)
addiu v1,sp,0x34
sb a3,0x36(sp)
sh s0,0x30(sp)
sw v1,0x28(sp)
sb v0,0x37(sp)
bne s8,zero,0x0001febc
_sb s0,0x38(sp)
beq s2,zero,0x0001fd60
_lw v0,0xc0(sp)
blez s0,0x0001fd60
_li v1,0x7f
slti v0,s0,0x5
bne v0,zero,0x0001fd5c
_sb v1,0x0(s2)
sb zero,0x4(s2)
lw v0,0xc0(sp)
bgtz v0,0x0001fd70
_lw t9,-0x7fb0(gp)
li v0,0x3c
sw v0,0xc0(sp)
li a2,0x6
lw a1,0x28(sp)
or a0,s1,zero
jalr t9
_addiu s5,sp,0x3c
li a2,0x40
lw gp,0x20(sp)
or a1,s5,zero
lw t9,-0x7f1c(gp)
jalr t9
_or a0,s1,zero
or a2,s0,zero
lw gp,0x20(sp)
or a1,s2,zero
lw t9,-0x7d90(gp)
jalr t9
_or a0,s1,zero
li a1,-0x1
lw gp,0x20(sp)
or a3,s8,zero
lw a2,0xc0(sp)
lw t9,-0x7e8c(gp)
jalr t9
_or a0,s1,zero
addiu v1,sp,0x30
lw gp,0x20(sp)
or a2,v0,zero
lbu v0,0xcb(sp)
addiu a1,s7,-0x1a58
or a0,s1,zero
sw v1,0x1c(sp)
or a3,s0,zero
sw s5,0x10(sp)
sw s8,0x18(sp)
lw t9,-0x7f40(gp)
jalr t9
_sw v0,0x14(sp)
or a0,s1,zero
lw gp,0x20(sp)
lw t9,-0x7ed4(gp)
jalr t9
_or s5,v0,zero
lw gp,0x20(sp)
beq s6,zero,0x0001fe28
_or s3,v0,zero
sw v0,0x0(s6)
li v0,-0x1
beq s5,v0,0x0001ff34
_li v0,-0x2
beq s5,v0,0x0001ff20
_slti v0,s5,0x4
bne v0,zero,0x0001feac
_or s1,zero,zero
blez s3,0x0001fe6c
_slt v0,s0,s3
bne v0,zero,0x0001ff5c
_lw t9,-0x7ea8(gp)
subu a0,s0,s3
or a1,zero,zero
addu a0,s2,a0
jalr t9
_or a2,s3,zero
lw gp,0x20(sp)
lw a0,0x7c(sp)
or v0,s1,zero
lw v1,0x0(s4)
bne a0,v1,0x0001ffac
_lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa8
bne s8,zero,0x0001ff88
_lw a1,-0x7fd0(gp)
b 0x0001fe44
_li s1,0x61
lw a0,-0x7fd0(gp)
addiu v0,sp,0x3a
lw t9,-0x7f24(gp)
addiu a1,s7,-0x1a58
sw v0,0x2c(sp)
jalr t9
_addiu a0,a0,-0x1a50
lw gp,0x20(sp)
lw s3,0x28(sp)
lw s5,-0x7fd4(gp)
addiu s5,s5,0x1f1c
lw t9,-0x7f24(gp)
or a0,s5,zero
lbu a1,0x0(s3)
jalr t9
_addiu s3,s3,0x1
lw v0,0x2c(sp)
bne s3,v0,0x0001fee8
_lw gp,0x20(sp)
lw a0,-0x7fd0(gp)
lw t9,-0x7f24(gp)
jalr t9
_addiu a0,a0,-0x990
b 0x0001fd3c
_lw gp,0x20(sp)
lw s1,0x30(sp)
addiu v0,s1,-0x14
sltiu v0,v0,0x2
b 0x0001fe44
_movn s1,zero,v0
lw t9,-0x7d74(gp)
jalr t9
_or a0,s1,zero
lw gp,0x20(sp)
lw t9,-0x7ee8(gp)
jalr t9
_or a0,v0,zero
lw gp,0x20(sp)
b 0x0001fe44
_or s1,v0,zero
lw a0,-0x7fd0(gp)
addiu a1,s7,-0x1a58
lw t9,-0x7f24(gp)
or a3,s0,zero
or a2,s3,zero
jalr t9
_addiu a0,a0,-0x1a24
bne s1,zero,0x0001fe6c
_lw gp,0x20(sp)
b 0x0001fe6c
_li s1,0x61
or a2,s5,zero
lw a0,-0x7fd0(gp)
li s1,0x61
lw t9,-0x7f24(gp)
addiu a1,a1,-0x1778
jalr t9
_addiu a0,a0,-0x1a40
b 0x0001fe44
_lw gp,0x20(sp)
lw t9,-0x7df4(gp)
jalr t9
_nop
(translation_unit "undefined4 *\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}\n\n" (function_definition "undefined4 *\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" type_identifier (pointer_declarator "*\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" * (function_declarator "FUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) , (parameter_declaration "undefined1 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "byte param_9" type_identifier identifier) , (parameter_declaration "undefined *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined3 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined2 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined2 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined4 *puStack_1cc;" type_identifier (pointer_declarator "*puStack_1cc" * identifier) ;) (declaration "undefined2 uStack_1c8;" type_identifier identifier ;) (declaration "undefined1 uStack_1c6;" type_identifier identifier ;) (declaration "undefined1 uStack_1c5;" type_identifier identifier ;) (declaration "undefined2 uStack_1c4;" type_identifier identifier ;) (declaration "undefined1 auStack_1c2 [4];" type_identifier (array_declarator "auStack_1c2 [4]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_1be;" type_identifier identifier ;) (declaration "undefined2 auStack_1bc [32];" type_identifier (array_declarator "auStack_1bc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "undefined4 *puStack_178;" type_identifier (pointer_declarator "*puStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "undefined4 *puStack_170;" type_identifier (pointer_declarator "*puStack_170" * identifier) ;) (declaration "undefined *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "undefined4 *puStack_15c;" type_identifier (pointer_declarator "*puStack_15c" * identifier) ;) (declaration "undefined *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "undefined4 *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "undefined *puStack_138;" type_identifier (pointer_declarator "*puStack_138" * identifier) ;) (declaration "undefined4 **ppuStack_134;" type_identifier (pointer_declarator "**ppuStack_134" * (pointer_declarator "*ppuStack_134" * identifier)) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "undefined4 *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "undefined4 *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "short sStack_118;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_116 [66];" type_identifier (array_declarator "auStack_116 [66]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined4 *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined1 *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int *piStack_b8;" primitive_type (pointer_declarator "*piStack_b8" * identifier) ;) (declaration "undefined *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "undefined *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined4 **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined3 local_74;" type_identifier identifier ;) (declaration "undefined1 uStack_71;" type_identifier identifier ;) (declaration "short local_70;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_6e [66];" type_identifier (array_declarator "auStack_6e [66]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar5 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar14 = PTR_s_tatus_00054840;" (assignment_expression "puVar14 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_74._0_2_ = 0x1200;" (assignment_expression "local_74._0_2_ = 0x1200" (field_expression "local_74._0_2_" identifier . field_identifier) = number_literal) ;) (if_statement "if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    local_74._0_2_ = 0x1202;\n  }" { (expression_statement "local_74._0_2_ = 0x1202;" (assignment_expression "local_74._0_2_ = 0x1202" (field_expression "local_74._0_2_" identifier . field_identifier) = number_literal) ;) })) (if_statement "if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" { (expression_statement "local_74._0_2_ = local_74._0_2_ | 1;" (assignment_expression "local_74._0_2_ = local_74._0_2_ | 1" (field_expression "local_74._0_2_" identifier . field_identifier) = (binary_expression "local_74._0_2_ | 1" (field_expression "local_74._0_2_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);" (assignment_expression "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" identifier = (cast_expression "(undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22((short)param_6,local_78._2_2_)" identifier (argument_list "((short)param_6,local_78._2_2_)" ( (cast_expression "(short)param_6" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "local_78._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));" (assignment_expression "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" identifier = (call_expression "CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" identifier (argument_list "(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" ( (call_expression "CONCAT21(local_74._0_2_,param_4)" identifier (argument_list "(local_74._0_2_,param_4)" ( (field_expression "local_74._0_2_" identifier . field_identifier) , identifier ))) , (cast_expression "(char)((uint)param_6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)param_6 >> 8)" ( (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "local_70 = (ushort)(byte)param_6 << 8;" (assignment_expression "local_70 = (ushort)(byte)param_6 << 8" identifier = (binary_expression "(ushort)(byte)param_6 << 8" (cast_expression "(ushort)(byte)param_6" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)param_6" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" if (parenthesized_expression "(param_10 != (undefined *)0x0)" ( (binary_expression "param_10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x1a58" identifier + number_literal) ))) ;) (expression_statement "puVar13 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "puVar13 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar19 = &local_74;" (assignment_expression "puVar19 = &local_74" identifier = (pointer_expression "&local_74" & identifier)) ;) (do_statement "do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);" do (compound_statement "{\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined1 *)puVar19;" (assignment_expression "uVar15 = *(undefined1 *)puVar19" identifier = (pointer_expression "*(undefined1 *)puVar19" * (cast_expression "(undefined1 *)puVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar19 = (undefined3 *)((int)puVar19 + 1);" (assignment_expression "puVar19 = (undefined3 *)((int)puVar19 + 1)" identifier = (cast_expression "(undefined3 *)((int)puVar19 + 1)" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 1)" ( (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,uVar15)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(puVar19 != (undefined3 *)auStack_6e)" ( (binary_expression "puVar19 != (undefined3 *)auStack_6e" identifier != (cast_expression "(undefined3 *)auStack_6e" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) })) (if_statement "if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }" if (parenthesized_expression "(((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))" ( (binary_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6)" (parenthesized_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6))" ( (binary_expression "(param_5 != (undefined1 *)0x0) && (0 < (int)param_6)" (parenthesized_expression "(param_5 != (undefined1 *)0x0)" ( (binary_expression "param_5 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < (int)param_6)" ( (binary_expression "0 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(*param_5 = 0x7f, 4 < (int)param_6)" ( (comma_expression "*param_5 = 0x7f, 4 < (int)param_6" (assignment_expression "*param_5 = 0x7f" (pointer_expression "*param_5" * identifier) = number_literal) , (binary_expression "4 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    param_5[4] = 0;\n  }" { (expression_statement "param_5[4] = 0;" (assignment_expression "param_5[4] = 0" (subscript_expression "param_5[4]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (param_7 < 1) {\n    param_7 = 0x3c;\n  }" if (parenthesized_expression "(param_7 < 1)" ( (binary_expression "param_7 < 1" identifier < number_literal) )) (compound_statement "{\n    param_7 = 0x3c;\n  }" { (expression_statement "param_7 = 0x3c;" (assignment_expression "param_7 = 0x3c" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_74,6)" ( identifier , (pointer_expression "&local_74" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,auStack_6e + 2,0x40)" ( identifier , (binary_expression "auStack_6e + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_5,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);" (assignment_expression "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffffffff,param_7,param_10)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_8c = &local_78;" (assignment_expression "local_8c = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_94 = (uint)param_9;" (assignment_expression "local_94 = (uint)param_9" identifier = (cast_expression "(uint)param_9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" identifier = (binary_expression "puVar14 + -0x1a58" identifier + number_literal)) ;) (expression_statement "local_90 = param_10;" (assignment_expression "local_90 = param_10" identifier = identifier) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "local_98 = (undefined4 *)(auStack_6e + 2);" (assignment_expression "local_98 = (undefined4 *)(auStack_6e + 2)" identifier = (cast_expression "(undefined4 *)(auStack_6e + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_6e + 2)" ( (binary_expression "auStack_6e + 2" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);" (assignment_expression "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);" (assignment_expression "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_resid_0005493c" * (cast_expression "(code *)PTR_get_scsi_pt_resid_0005493c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_8 = iVar9;\n  }" { (expression_statement "*param_8 = iVar9;" (assignment_expression "*param_8 = iVar9" (pointer_expression "*param_8" * identifier) = identifier) ;) })) (if_statement "if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }" { (expression_statement "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);" (assignment_expression "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))))) ;) }) (else_clause "else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" else (if_statement "if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 == -2)" ( (binary_expression "iVar8 == -2" identifier == number_literal) )) (compound_statement "{\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }" { (expression_statement "puVar17 = local_78;" (assignment_expression "puVar17 = local_78" identifier = identifier) ;) (if_statement "if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }" if (parenthesized_expression "(local_78 + -5 < (undefined4 *)0x2)" ( (binary_expression "local_78 + -5 < (undefined4 *)0x2" (binary_expression "local_78 + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar17 = (undefined4 *)0x0;\n    }" { (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" else (compound_statement "{\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" { (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" if (parenthesized_expression "(iVar8 < 4)" ( (binary_expression "iVar8 < 4" identifier < number_literal) )) (compound_statement "{\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" { (if_statement "if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" if (parenthesized_expression "(param_10 == (undefined *)0x0)" ( (binary_expression "param_10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar13 = PTR_s_tatus_00054840;" (assignment_expression "puVar13 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" else (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar13 = PTR_s_tatus_00054840 + -0x1778;" (assignment_expression "puVar13 = PTR_s_tatus_00054840 + -0x1778" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1778" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a40)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a40" identifier + number_literal) ))) ;) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) }))))) (if_statement "if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" { (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" identifier = identifier) ;) (if_statement "if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" if (parenthesized_expression "((int)param_6 < iVar9)" ( (binary_expression "(int)param_6 < iVar9" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" { (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" identifier = (binary_expression "puVar14 + -0x1a58" identifier + number_literal)) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a24)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a24" identifier + number_literal) ))) ;) (if_statement "if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }" if (parenthesized_expression "(puVar17 == (undefined4 *)0x0)" ( (binary_expression "puVar17 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" else (compound_statement "{\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" { (expression_statement "puVar13 = (undefined *)0x0;" (assignment_expression "puVar13 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));" (call_expression "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9))" (parenthesized_expression "(*(code *)PTR_memset_00054968)" ( (pointer_expression "*(code *)PTR_memset_00054968" * (cast_expression "(code *)PTR_memset_00054968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5 + ((int)param_6 - iVar9))" ( (binary_expression "param_5 + ((int)param_6 - iVar9)" identifier + (parenthesized_expression "((int)param_6 - iVar9)" ( (binary_expression "(int)param_6 - iVar9" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) ))) ;) }))) })) (if_statement "if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar5)" ( (binary_expression "local_2c == *(int *)puVar5" identifier == (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar17;\n  }" { (return_statement "return puVar17;" return identifier ;) })) (expression_statement "pcVar24 = FUN_0001ffb8;" (assignment_expression "pcVar24 = FUN_0001ffb8" identifier = identifier) ;) (expression_statement "iVar11 = local_2c;" (assignment_expression "iVar11 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_90;" (assignment_expression "puVar6 = local_90" identifier = identifier) ;) (expression_statement "puVar18 = local_98;" (assignment_expression "puVar18 = local_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar23 + 0x3c858;" (assignment_expression "puStack_130 = puVar23 + 0x3c858" identifier = (binary_expression "puVar23 + 0x3c858" identifier + number_literal)) ;) (expression_statement "puStack_c0 = puVar5;" (assignment_expression "puStack_c0 = puVar5" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(puVar23 + 0x34a94);" (assignment_expression "piVar20 = *(int **)(puVar23 + 0x34a94)" identifier = (pointer_expression "*(int **)(puVar23 + 0x34a94)" * (cast_expression "(int **)(puVar23 + 0x34a94)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34a94)" ( (binary_expression "puVar23 + 0x34a94" identifier + number_literal) ))))) ;) (expression_statement "puStack_b0 = param_10;" (assignment_expression "puStack_b0 = param_10" identifier = identifier) ;) (expression_statement "puStack_b4 = puVar14;" (assignment_expression "puStack_b4 = puVar14" identifier = identifier) ;) (expression_statement "puStack_c8 = param_5;" (assignment_expression "puStack_c8 = param_5" identifier = identifier) ;) (expression_statement "piStack_b8 = param_8;" (assignment_expression "piStack_b8 = param_8" identifier = identifier) ;) (expression_statement "puStack_d0 = param_6;" (assignment_expression "puStack_d0 = param_6" identifier = identifier) ;) (expression_statement "uStack_11c = 0x3000000;" (assignment_expression "uStack_11c = 0x3000000" identifier = number_literal) ;) (expression_statement "sStack_118 = 0;" (assignment_expression "sStack_118 = 0" identifier = number_literal) ;) (expression_statement "iStack_d4 = *piVar20;" (assignment_expression "iStack_d4 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (if_statement "if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_11c = 0x3010000;\n  }" { (expression_statement "uStack_11c = 0x3010000;" (assignment_expression "uStack_11c = 0x3010000" identifier = number_literal) ;) })) (expression_statement "puVar16 = puVar12;" (assignment_expression "puVar16 = puVar12" identifier = identifier) ;) (expression_statement "puStack_cc = puVar17;" (assignment_expression "puStack_cc = puVar17" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar9;" (assignment_expression "iStack_c4 = iVar9" identifier = identifier) ;) (expression_statement "iStack_bc = iVar8;" (assignment_expression "iStack_bc = iVar8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar24;" (assignment_expression "pcStack_ac = pcVar24" identifier = identifier) ;) (if_statement "if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" if (parenthesized_expression "((int)local_98 < 0x100)" ( (binary_expression "(int)local_98 < 0x100" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }" { (expression_statement "sStack_118 = (ushort)(byte)local_98 << 8;" (assignment_expression "sStack_118 = (ushort)(byte)local_98 << 8" identifier = (binary_expression "(ushort)(byte)local_98 << 8" (cast_expression "(ushort)(byte)local_98" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)local_98" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" if (parenthesized_expression "(local_90 == (undefined *)0x0)" ( (binary_expression "local_90 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }" { (expression_statement "pcVar24 = *(code **)(puVar23 + 0x34978);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x34978)" identifier = (pointer_expression "*(code **)(puVar23 + 0x34978)" * (cast_expression "(code **)(puVar23 + 0x34978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34978)" ( (binary_expression "puVar23 + 0x34978" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_000201d0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000201d0;" goto statement_identifier ;)) (labeled_statement "LAB_0002004c:\n      param_8 = (int *)0x1;" statement_identifier : (expression_statement "param_8 = (int *)0x1;" (assignment_expression "param_8 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" else (compound_statement "{\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" { (expression_statement "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);" (call_expression "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" ( (pointer_expression "**(code **)(puVar23 + 0x34934)" * (pointer_expression "*(code **)(puVar23 + 0x34934)" * (cast_expression "(code **)(puVar23 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34934)" ( (binary_expression "puVar23 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" ( (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19c0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19d0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar17 = &uStack_11c;" (assignment_expression "puVar17 = &uStack_11c" identifier = (pointer_expression "&uStack_11c" & identifier)) ;) (do_statement "do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);" do (compound_statement "{\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      }" { (expression_statement "param_6 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "param_6 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar17 = param_6;" (assignment_expression "puVar17 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(param_6 != (undefined4 *)auStack_116)" ( (binary_expression "param_6 != (undefined4 *)auStack_116" identifier != (cast_expression "(undefined4 *)auStack_116" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002004c;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002004c;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ee0);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ee0)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ee0)" * (cast_expression "(code **)(puStack_130 + -0x7ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee0)" ( (binary_expression "puStack_130 + -0x7ee0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000201d0:\n      uVar15 = (undefined1)iVar7;" statement_identifier : (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "param_8 = (int *)0x0;" (assignment_expression "param_8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = puVar6;" (assignment_expression "puVar14 = puVar6" identifier = identifier) ;) (expression_statement "iVar11 = (*pcVar24)(puVar13,puVar6);" (assignment_expression "iVar11 = (*pcVar24)(puVar13,puVar6)" identifier = (call_expression "(*pcVar24)(puVar13,puVar6)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(puVar13,puVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" { (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_130 + -0x7ee8))(0xc)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (goto_statement "goto LAB_00020118;" goto statement_identifier ;) })) }))) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd0);" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar11,&uStack_11c,6)" ( identifier , (pointer_expression "&uStack_11c" & identifier) , number_literal ))) ;) (expression_statement "param_6 = (undefined4 *)(auStack_116 + 2);" (assignment_expression "param_6 = (undefined4 *)(auStack_116 + 2)" identifier = (cast_expression "(undefined4 *)(auStack_116 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_116 + 2)" ( (binary_expression "auStack_116 + 2" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar11,param_6,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);" (call_expression "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d90))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d90)" * (pointer_expression "*(code **)(puStack_130 + -0x7d90)" * (cast_expression "(code **)(puStack_130 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d90)" ( (binary_expression "puStack_130 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar11,puVar12,puVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar11,0xffffffff,0x3c,puVar6)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "ppuStack_134 = &puStack_120;" (assignment_expression "ppuStack_134 = &puStack_120" identifier = (pointer_expression "&puStack_120" & identifier)) ;) (expression_statement "uStack_13c = local_94 & 0xff;" (assignment_expression "uStack_13c = local_94 & 0xff" identifier = (binary_expression "local_94 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar8 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x19d0)" ( (binary_expression "iVar8 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "puStack_138 = puVar6;" (assignment_expression "puStack_138 = puVar6" identifier = identifier) ;) (expression_statement "puVar16 = puVar18;" (assignment_expression "puVar16 = puVar18" identifier = identifier) ;) (expression_statement "puStack_140 = param_6;" (assignment_expression "puStack_140 = param_6" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);" (assignment_expression "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar11,puVar14,uVar10,puVar18)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar15 = (undefined1)uVar10;" (assignment_expression "uVar15 = (undefined1)uVar10" identifier = (cast_expression "(undefined1)uVar10" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }" { (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))))) ;) (labeled_statement "LAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);" statement_identifier : (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;)) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) }) (else_clause "else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" else (compound_statement "{\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" { (expression_statement "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);" (assignment_expression "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8)" identifier = (cast_expression "(undefined4 *)(uint)((int)puVar18 < 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)puVar18 < 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar18 < 8)" ( (binary_expression "(int)puVar18 < 8" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (if_statement "if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" if (parenthesized_expression "(iVar7 != -2)" ( (binary_expression "iVar7 != -2" identifier != number_literal) )) (compound_statement "{\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" { (if_statement "if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }" if (parenthesized_expression "((puVar18 == (undefined4 *)0x0) && (iVar7 < 8))" ( (binary_expression "(puVar18 == (undefined4 *)0x0) && (iVar7 < 8)" (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" ( (binary_expression "puVar18 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar7 < 8)" ( (binary_expression "iVar7 < 8" identifier < number_literal) ))) )) (compound_statement "{\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }" { (if_statement "if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" { (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" else (compound_statement "{\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" { (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar8 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x19d0)" ( (binary_expression "iVar8 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x19b0" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          puStack_120 = (undefined4 *)0x0;\n        }" else (compound_statement "{\n          puStack_120 = (undefined4 *)0x0;\n        }" { (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_00020110;" goto statement_identifier ;) })) (if_statement "if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }" if (parenthesized_expression "(puStack_120 + -5 < (undefined4 *)0x2)" ( (binary_expression "puStack_120 + -5 < (undefined4 *)0x2" (binary_expression "puStack_120 + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puStack_120 = (undefined4 *)0x0;\n      }" { (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;) }))) (expression_statement "puStack_124 = puStack_120;" (assignment_expression "puStack_124 = puStack_120" identifier = identifier) ;) (expression_statement "(*pcVar24)(iVar11);" (call_expression "(*pcVar24)(iVar11)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "puStack_120 = puStack_124;" (assignment_expression "puStack_120 = puStack_124" identifier = identifier) ;) }) (else_clause "else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" else (compound_statement "{\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" { (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);" (call_expression "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" ( (pointer_expression "**(code **)(puVar23 + 0x34934)" * (pointer_expression "*(code **)(puVar23 + 0x34934)" * (cast_expression "(code **)(puVar23 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34934)" ( (binary_expression "puVar23 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19f0)" ( (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19f0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" statement_identifier : (if_statement "if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar20)" ( (binary_expression "iStack_d4 == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    return puStack_120;\n  }" { (return_statement "return puStack_120;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = FUN_00020298;" (assignment_expression "pcVar25 = FUN_00020298" identifier = identifier) ;) (expression_statement "iVar7 = iStack_d4;" (assignment_expression "iVar7 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puStack_140;" (assignment_expression "puVar17 = puStack_140" identifier = identifier) ;) (expression_statement "piStack_168 = piVar20;" (assignment_expression "piStack_168 = piVar20" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(pcVar24 + 0x347b4);" (assignment_expression "piVar20 = *(int **)(pcVar24 + 0x347b4)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x347b4)" * (cast_expression "(int **)(pcVar24 + 0x347b4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347b4)" ( (binary_expression "pcVar24 + 0x347b4" identifier + number_literal) ))))) ;) (expression_statement "iStack_174 = iVar11;" (assignment_expression "iStack_174 = iVar11" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0xa000;" (assignment_expression "uStack_1c8 = 0xa000" identifier = number_literal) ;) (expression_statement "puStack_158 = puVar13;" (assignment_expression "puStack_158 = puVar13" identifier = identifier) ;) (expression_statement "iStack_17c = *piVar20;" (assignment_expression "iStack_17c = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "puStack_15c = puVar12;" (assignment_expression "puStack_15c = puVar12" identifier = identifier) ;) (expression_statement "iStack_164 = iVar8;" (assignment_expression "iStack_164 = iVar8" identifier = identifier) ;) (expression_statement "puStack_178 = param_6;" (assignment_expression "puStack_178 = param_6" identifier = identifier) ;) (expression_statement "pcStack_154 = pcVar25;" (assignment_expression "pcStack_154 = pcVar25" identifier = identifier) ;) (expression_statement "piStack_160 = param_8;" (assignment_expression "piStack_160 = param_8" identifier = identifier) ;) (expression_statement "puStack_16c = puVar6;" (assignment_expression "puStack_16c = puVar6" identifier = identifier) ;) (expression_statement "puStack_170 = puVar18;" (assignment_expression "puStack_170 = puVar18" identifier = identifier) ;) (expression_statement "uStack_1c5 = 0;" (assignment_expression "uStack_1c5 = 0" identifier = number_literal) ;) (expression_statement "uStack_1be = 0;" (assignment_expression "uStack_1be = 0" identifier = number_literal) ;) (expression_statement "uStack_1c6 = uVar15;" (assignment_expression "uStack_1c6 = uVar15" identifier = identifier) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "puStack_1cc = puStack_140;" (assignment_expression "puStack_1cc = puStack_140" identifier = identifier) ;) (expression_statement "uVar2 = (uint)auStack_1c2 & 3;" (assignment_expression "uVar2 = (uint)auStack_1c2 & 3" identifier = (binary_expression "(uint)auStack_1c2 & 3" (cast_expression "(uint)auStack_1c2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar3 = (uint *)(auStack_1c2 + -uVar2);" (assignment_expression "puVar3 = (uint *)(auStack_1c2 + -uVar2)" identifier = (cast_expression "(uint *)(auStack_1c2 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_1c2 + -uVar2)" ( (binary_expression "auStack_1c2 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) ;) (expression_statement "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;" (assignment_expression "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (pointer_expression "*puVar3" * identifier) = (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8" (pointer_expression "*puVar3" * identifier) & (binary_expression "-1 << (4 - uVar2) * 8" number_literal << (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)puStack_140 >> uVar2 * 8" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar2 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = auStack_1c2 + 3;" (assignment_expression "puVar1 = auStack_1c2 + 3" identifier = (binary_expression "auStack_1c2 + 3" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)puVar1 & 3;" (assignment_expression "uVar2 = (uint)puVar1 & 3" identifier = (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;" (assignment_expression "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" * (cast_expression "(uint *)(puVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar2)" ( (binary_expression "puVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" * (cast_expression "(uint *)(puVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar2)" ( (binary_expression "puVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" number_literal >> (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)puVar17 << (3 - uVar2) * 8" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" ( (binary_expression "3 - uVar2" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x345a8);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x345a8)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) ))))) ;) (if_statement "if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" if (parenthesized_expression "(puStack_138 == (undefined *)0x0)" ( (binary_expression "puStack_138 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x347bc)" * (cast_expression "(code **)(pcVar24 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347bc)" ( (binary_expression "pcVar24 + 0x347bc" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00020494;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020494;" goto statement_identifier ;)) (labeled_statement "LAB_00020334:\n    bVar4 = true;" statement_identifier : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;)) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1a50" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(pcVar24 + 0x345a4);" (assignment_expression "iVar9 = *(int *)(pcVar24 + 0x345a4)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x345a4)" * (cast_expression "(int *)(pcVar24 + 0x345a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a4)" ( (binary_expression "pcVar24 + 0x345a4" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = &uStack_1c8;" (assignment_expression "puVar21 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);" do (compound_statement "{\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    }" { (expression_statement "puVar22 = (undefined2 *)((int)puVar21 + 1);" (assignment_expression "puVar22 = (undefined2 *)((int)puVar21 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar21 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 1)" ( (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);" (call_expression "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" ( (binary_expression "iVar9 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)puVar21" * (cast_expression "(undefined1 *)puVar21" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(auStack_1bc != puVar22)" ( (binary_expression "auStack_1bc != puVar22" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x990)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x990" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 != 0) goto LAB_00020334;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020334;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x347bc)" * (cast_expression "(code **)(pcVar24 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347bc)" ( (binary_expression "pcVar24 + 0x347bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00020494:\n    iVar7 = (*pcVar25)();" statement_identifier : (expression_statement "iVar7 = (*pcVar25)();" (assignment_expression "iVar7 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1974" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x34690))(0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" ( (pointer_expression "**(code **)(pcVar24 + 0x34690)" * (pointer_expression "*(code **)(pcVar24 + 0x34690)" * (cast_expression "(code **)(pcVar24 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34690)" ( (binary_expression "pcVar24 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))) (expression_statement "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);" (call_expression "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x345c8))" ( (pointer_expression "**(code **)(pcVar24 + 0x345c8)" * (pointer_expression "*(code **)(pcVar24 + 0x345c8)" * (cast_expression "(code **)(pcVar24 + 0x345c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x345c8)" ( (binary_expression "pcVar24 + 0x345c8" identifier + number_literal) ))))) )) (argument_list "(iVar7,&uStack_1c8,0xc)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);" (call_expression "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3465c))" ( (pointer_expression "**(code **)(pcVar24 + 0x3465c)" * (pointer_expression "*(code **)(pcVar24 + 0x3465c)" * (cast_expression "(code **)(pcVar24 + 0x3465c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3465c)" ( (binary_expression "pcVar24 + 0x3465c" identifier + number_literal) ))))) )) (argument_list "(iVar7,auStack_1bc,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);" (call_expression "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17)" (parenthesized_expression "(**(code **)(pcVar24 + 0x347e8))" ( (pointer_expression "**(code **)(pcVar24 + 0x347e8)" * (pointer_expression "*(code **)(pcVar24 + 0x347e8)" * (cast_expression "(code **)(pcVar24 + 0x347e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347e8)" ( (binary_expression "pcVar24 + 0x347e8" identifier + number_literal) ))))) )) (argument_list "(iVar7,puVar16,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" identifier = (call_expression "(**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" (parenthesized_expression "(**(code **)(pcVar24 + 0x346ec))" ( (pointer_expression "**(code **)(pcVar24 + 0x346ec)" * (pointer_expression "*(code **)(pcVar24 + 0x346ec)" * (cast_expression "(code **)(pcVar24 + 0x346ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346ec)" ( (binary_expression "pcVar24 + 0x346ec" identifier + number_literal) ))))) )) (argument_list "(iVar7,puVar14,0x3c,puStack_138)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);" (assignment_expression "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" identifier = (call_expression "(**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34638))" ( (pointer_expression "**(code **)(pcVar24 + 0x34638)" * (pointer_expression "*(code **)(pcVar24 + 0x34638)" * (cast_expression "(code **)(pcVar24 + 0x34638)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34638)" ( (binary_expression "pcVar24 + 0x34638" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" ( identifier , (binary_expression "iVar8 + -0x1980" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "uStack_13c & 0xff" identifier & number_literal) , identifier , (pointer_expression "&puStack_1cc" & identifier) )))) ;) (if_statement "if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }" { (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x34804))(iVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34804))" ( (pointer_expression "**(code **)(pcVar24 + 0x34804)" * (pointer_expression "*(code **)(pcVar24 + 0x34804)" * (cast_expression "(code **)(pcVar24 + 0x34804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34804)" ( (binary_expression "pcVar24 + 0x34804" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x34690))(uVar10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" ( (pointer_expression "**(code **)(pcVar24 + 0x34690)" * (pointer_expression "*(code **)(pcVar24 + 0x34690)" * (cast_expression "(code **)(pcVar24 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34690)" ( (binary_expression "pcVar24 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))))) ;) (labeled_statement "LAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x346d4)" * (cast_expression "(code **)(pcVar24 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346d4)" ( (binary_expression "pcVar24 + 0x346d4" identifier + number_literal) ))))) ;)) (if_statement "if (bVar4) goto LAB_000203f8;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" else (compound_statement "{\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" { (if_statement "if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" if (parenthesized_expression "(iVar8 != -2)" ( (binary_expression "iVar8 != -2" identifier != number_literal) )) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" { (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000203f0;" goto statement_identifier ;) })) (expression_statement "puVar12 = puStack_1cc;" (assignment_expression "puVar12 = puStack_1cc" identifier = identifier) ;) (if_statement "if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }" if (parenthesized_expression "(puStack_1cc + -5 < (undefined4 *)0x2)" ( (binary_expression "puStack_1cc + -5 < (undefined4 *)0x2" (binary_expression "puStack_1cc + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n    }" { (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (bVar4) goto LAB_000203f8;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x346d4)" * (cast_expression "(code **)(pcVar24 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346d4)" ( (binary_expression "pcVar24 + 0x346d4" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar25)(iVar7);" (call_expression "(*pcVar25)(iVar7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(iVar7)" ( identifier ))) ;) (labeled_statement "LAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" statement_identifier : (if_statement "if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" if (parenthesized_expression "(iStack_17c != *piVar20)" ( (binary_expression "iStack_17c != *piVar20" identifier != (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" { (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x34784);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x34784)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x34784)" * (cast_expression "(code **)(pcVar24 + 0x34784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34784)" ( (binary_expression "pcVar24 + 0x34784" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) comment comment (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x343d8))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x343d8))" ( (pointer_expression "**(code **)(pcVar24 + 0x343d8)" * (pointer_expression "*(code **)(pcVar24 + 0x343d8)" * (cast_expression "(code **)(pcVar24 + 0x343d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x343d8)" ( (binary_expression "pcVar24 + 0x343d8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar12;" return identifier ;) }))) (return_statement "return puVar12;" return identifier ;) })))
(translation_unit "int sg_ll_inquiry_com(sg_pt_base *ptvp,_Bool cmddt,_Bool evpd,int pg_op,void *resp,int mx_resp_len,\n                     int timeout_secs,int *residp,_Bool noisy,int verbose)\n\n{\n  undefined1 *puVar1;\n  uint8_t uVar2;\n  uint uVar3;\n  uint *puVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  undefined3 in_register_00000014;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined3 in_register_00000018;\n  undefined1 uVar16;\n  uint8_t *puVar17;\n  int iVar18;\n  uint8_t *puVar19;\n  uint8_t *puVar20;\n  int *piVar21;\n  undefined2 *puVar22;\n  undefined2 *puVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  uint8_t *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  uint8_t *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  int iStack_124;\n  int iStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  void *pvStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  int iStack_b0;\n  code *pcStack_ac;\n  uint8_t *puStack_98;\n  uint uStack_94;\n  undefined *puStack_90;\n  int *piStack_8c;\n  int sense_cat;\n  uint8_t inq_cdb [6];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar6 = PTR___stack_chk_guard_00054a4c;\n  puVar15 = PTR_s_tatus_00054840;\n  iVar8 = *(int *)PTR___stack_chk_guard_00054a4c;\n  inq_cdb[0] = '\x12';\n  inq_cdb[1] = '\0';\n  if (CONCAT31(in_register_00000014,cmddt) != 0) {\n    inq_cdb[0] = '\x12';\n    inq_cdb[1] = '\x02';\n  }\n  if (CONCAT31(in_register_00000018,evpd) != 0) {\n    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;\n  }\n  inq_cdb[2] = (char)pg_op;\n  sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_);\n  inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8);\n  inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8;\n  if (verbose != 0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar14 = PTR_LAB_0005483c + 0x1f1c;\n    puVar20 = inq_cdb;\n    do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))\n  {\n    *(undefined1 *)((int)resp + 4) = 0;\n  }\n  if (timeout_secs < 1) {\n    timeout_secs = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len);\n  iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose);\n  piStack_8c = &sense_cat;\n  uStack_94 = (uint)noisy;\n  puVar14 = puVar15 + -0x1a58;\n  puStack_90 = (undefined *)verbose;\n  puVar20 = (uint8_t *)mx_resp_len;\n  puStack_98 = sense_b;\n  iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp);\n  iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp);\n  if (residp != (int *)0x0) {\n    *residp = iVar11;\n  }\n  if (iVar10 == -1) {\n    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);\n    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);\n  }\n  else if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }\n  if (0 < iVar11) {\n    iVar9 = iVar11;\n    if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }\n  }\n  if (iVar8 == *(int *)puVar6) {\n    return iVar18;\n  }\n  pcVar25 = sg_ll_request_sense_com;\n  puVar24 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar7 = puStack_90;\n  puVar19 = puStack_98;\n  puStack_130 = puVar24 + 0x3c858;\n  puStack_c0 = puVar6;\n  piVar21 = *(int **)(puVar24 + 0x34a94);\n  iStack_b0 = verbose;\n  puStack_b4 = puVar15;\n  pvStack_c8 = resp;\n  piStack_b8 = residp;\n  iStack_d0 = mx_resp_len;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar21;\n  if (iVar9 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar17 = puVar20;\n  iStack_cc = iVar18;\n  iStack_c4 = iVar11;\n  iStack_bc = iVar10;\n  pcStack_ac = pcVar25;\n  if ((int)puStack_98 < 0x100) {\n    sStack_118 = (ushort)(byte)puStack_98 << 8;\n    if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar10 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);\n    mx_resp_len = (int)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);\n    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);\n    piStack_134 = &iStack_120;\n    uStack_13c = uStack_94 & 0xff;\n    puVar15 = (undefined *)(iVar10 + -0x19d0);\n    puStack_138 = puVar7;\n    puVar17 = puVar19;\n    puStack_140 = (undefined4 *)mx_resp_len;\n    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);\n    uVar16 = (undefined1)uVar12;\n    if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    iStack_124 = iStack_120;\n    (*pcVar25)(iVar8);\n    iStack_120 = iStack_124;\n  }\n  else {\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar21) {\n    return iStack_120;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_report_luns_com;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  puVar13 = puStack_140;\n  piStack_168 = piVar21;\n  piVar21 = *(int **)(pcVar25 + 0x347b4);\n  iStack_174 = iVar8;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar14;\n  iStack_17c = *piVar21;\n  puStack_15c = puVar20;\n  iStack_164 = iVar10;\n  puStack_178 = (undefined4 *)mx_resp_len;\n  pcStack_154 = pcVar26;\n  piStack_160 = residp;\n  puStack_16c = puVar7;\n  puStack_170 = puVar19;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar16;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar3 = (uint)auStack_1c2 & 3;\n  puVar4 = (uint *)(auStack_1c2 + -uVar3);\n  *puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar3 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar3) =\n       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8\n  ;\n  iVar8 = *(int *)(pcVar25 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\n    if (iVar9 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar5 = true;\n  }\n  else {\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }\n  (**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc);\n  (**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40);\n  (**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13);\n  uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);\n    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);\nLAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n    if (bVar5) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }\n  (*pcVar26)(iVar9);\nLAB_000203f8:\n  if (iStack_17c != *piVar21) {\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }\n  return (int)puVar13;\n}\n\n" (function_definition "int sg_ll_inquiry_com(sg_pt_base *ptvp,_Bool cmddt,_Bool evpd,int pg_op,void *resp,int mx_resp_len,\n                     int timeout_secs,int *residp,_Bool noisy,int verbose)\n\n{\n  undefined1 *puVar1;\n  uint8_t uVar2;\n  uint uVar3;\n  uint *puVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  undefined3 in_register_00000014;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined3 in_register_00000018;\n  undefined1 uVar16;\n  uint8_t *puVar17;\n  int iVar18;\n  uint8_t *puVar19;\n  uint8_t *puVar20;\n  int *piVar21;\n  undefined2 *puVar22;\n  undefined2 *puVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  uint8_t *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  uint8_t *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  int iStack_124;\n  int iStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  void *pvStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  int iStack_b0;\n  code *pcStack_ac;\n  uint8_t *puStack_98;\n  uint uStack_94;\n  undefined *puStack_90;\n  int *piStack_8c;\n  int sense_cat;\n  uint8_t inq_cdb [6];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar6 = PTR___stack_chk_guard_00054a4c;\n  puVar15 = PTR_s_tatus_00054840;\n  iVar8 = *(int *)PTR___stack_chk_guard_00054a4c;\n  inq_cdb[0] = '\x12';\n  inq_cdb[1] = '\0';\n  if (CONCAT31(in_register_00000014,cmddt) != 0) {\n    inq_cdb[0] = '\x12';\n    inq_cdb[1] = '\x02';\n  }\n  if (CONCAT31(in_register_00000018,evpd) != 0) {\n    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;\n  }\n  inq_cdb[2] = (char)pg_op;\n  sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_);\n  inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8);\n  inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8;\n  if (verbose != 0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar14 = PTR_LAB_0005483c + 0x1f1c;\n    puVar20 = inq_cdb;\n    do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))\n  {\n    *(undefined1 *)((int)resp + 4) = 0;\n  }\n  if (timeout_secs < 1) {\n    timeout_secs = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len);\n  iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose);\n  piStack_8c = &sense_cat;\n  uStack_94 = (uint)noisy;\n  puVar14 = puVar15 + -0x1a58;\n  puStack_90 = (undefined *)verbose;\n  puVar20 = (uint8_t *)mx_resp_len;\n  puStack_98 = sense_b;\n  iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp);\n  iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp);\n  if (residp != (int *)0x0) {\n    *residp = iVar11;\n  }\n  if (iVar10 == -1) {\n    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);\n    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);\n  }\n  else if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }\n  if (0 < iVar11) {\n    iVar9 = iVar11;\n    if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }\n  }\n  if (iVar8 == *(int *)puVar6) {\n    return iVar18;\n  }\n  pcVar25 = sg_ll_request_sense_com;\n  puVar24 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar7 = puStack_90;\n  puVar19 = puStack_98;\n  puStack_130 = puVar24 + 0x3c858;\n  puStack_c0 = puVar6;\n  piVar21 = *(int **)(puVar24 + 0x34a94);\n  iStack_b0 = verbose;\n  puStack_b4 = puVar15;\n  pvStack_c8 = resp;\n  piStack_b8 = residp;\n  iStack_d0 = mx_resp_len;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar21;\n  if (iVar9 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar17 = puVar20;\n  iStack_cc = iVar18;\n  iStack_c4 = iVar11;\n  iStack_bc = iVar10;\n  pcStack_ac = pcVar25;\n  if ((int)puStack_98 < 0x100) {\n    sStack_118 = (ushort)(byte)puStack_98 << 8;\n    if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar10 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);\n    mx_resp_len = (int)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);\n    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);\n    piStack_134 = &iStack_120;\n    uStack_13c = uStack_94 & 0xff;\n    puVar15 = (undefined *)(iVar10 + -0x19d0);\n    puStack_138 = puVar7;\n    puVar17 = puVar19;\n    puStack_140 = (undefined4 *)mx_resp_len;\n    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);\n    uVar16 = (undefined1)uVar12;\n    if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    iStack_124 = iStack_120;\n    (*pcVar25)(iVar8);\n    iStack_120 = iStack_124;\n  }\n  else {\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar21) {\n    return iStack_120;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_report_luns_com;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  puVar13 = puStack_140;\n  piStack_168 = piVar21;\n  piVar21 = *(int **)(pcVar25 + 0x347b4);\n  iStack_174 = iVar8;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar14;\n  iStack_17c = *piVar21;\n  puStack_15c = puVar20;\n  iStack_164 = iVar10;\n  puStack_178 = (undefined4 *)mx_resp_len;\n  pcStack_154 = pcVar26;\n  piStack_160 = residp;\n  puStack_16c = puVar7;\n  puStack_170 = puVar19;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar16;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar3 = (uint)auStack_1c2 & 3;\n  puVar4 = (uint *)(auStack_1c2 + -uVar3);\n  *puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar3 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar3) =\n       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8\n  ;\n  iVar8 = *(int *)(pcVar25 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\n    if (iVar9 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar5 = true;\n  }\n  else {\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }\n  (**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc);\n  (**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40);\n  (**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13);\n  uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);\n    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);\nLAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n    if (bVar5) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }\n  (*pcVar26)(iVar9);\nLAB_000203f8:\n  if (iStack_17c != *piVar21) {\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }\n  return (int)puVar13;\n}" primitive_type (function_declarator "sg_ll_inquiry_com(sg_pt_base *ptvp,_Bool cmddt,_Bool evpd,int pg_op,void *resp,int mx_resp_len,\n                     int timeout_secs,int *residp,_Bool noisy,int verbose)" identifier (parameter_list "(sg_pt_base *ptvp,_Bool cmddt,_Bool evpd,int pg_op,void *resp,int mx_resp_len,\n                     int timeout_secs,int *residp,_Bool noisy,int verbose)" ( (parameter_declaration "sg_pt_base *ptvp" type_identifier (pointer_declarator "*ptvp" * identifier)) , (parameter_declaration "_Bool cmddt" type_identifier identifier) , (parameter_declaration "_Bool evpd" type_identifier identifier) , (parameter_declaration "int pg_op" primitive_type identifier) , (parameter_declaration "void *resp" primitive_type (pointer_declarator "*resp" * identifier)) , (parameter_declaration "int mx_resp_len" primitive_type identifier) , (parameter_declaration "int timeout_secs" primitive_type identifier) , (parameter_declaration "int *residp" primitive_type (pointer_declarator "*residp" * identifier)) , (parameter_declaration "_Bool noisy" type_identifier identifier) , (parameter_declaration "int verbose" primitive_type identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  uint8_t uVar2;\n  uint uVar3;\n  uint *puVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  undefined3 in_register_00000014;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined3 in_register_00000018;\n  undefined1 uVar16;\n  uint8_t *puVar17;\n  int iVar18;\n  uint8_t *puVar19;\n  uint8_t *puVar20;\n  int *piVar21;\n  undefined2 *puVar22;\n  undefined2 *puVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  uint8_t *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  uint8_t *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  int iStack_124;\n  int iStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  void *pvStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  int iStack_b0;\n  code *pcStack_ac;\n  uint8_t *puStack_98;\n  uint uStack_94;\n  undefined *puStack_90;\n  int *piStack_8c;\n  int sense_cat;\n  uint8_t inq_cdb [6];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar6 = PTR___stack_chk_guard_00054a4c;\n  puVar15 = PTR_s_tatus_00054840;\n  iVar8 = *(int *)PTR___stack_chk_guard_00054a4c;\n  inq_cdb[0] = '\x12';\n  inq_cdb[1] = '\0';\n  if (CONCAT31(in_register_00000014,cmddt) != 0) {\n    inq_cdb[0] = '\x12';\n    inq_cdb[1] = '\x02';\n  }\n  if (CONCAT31(in_register_00000018,evpd) != 0) {\n    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;\n  }\n  inq_cdb[2] = (char)pg_op;\n  sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_);\n  inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8);\n  inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8;\n  if (verbose != 0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar14 = PTR_LAB_0005483c + 0x1f1c;\n    puVar20 = inq_cdb;\n    do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))\n  {\n    *(undefined1 *)((int)resp + 4) = 0;\n  }\n  if (timeout_secs < 1) {\n    timeout_secs = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len);\n  iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose);\n  piStack_8c = &sense_cat;\n  uStack_94 = (uint)noisy;\n  puVar14 = puVar15 + -0x1a58;\n  puStack_90 = (undefined *)verbose;\n  puVar20 = (uint8_t *)mx_resp_len;\n  puStack_98 = sense_b;\n  iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp);\n  iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp);\n  if (residp != (int *)0x0) {\n    *residp = iVar11;\n  }\n  if (iVar10 == -1) {\n    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);\n    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);\n  }\n  else if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }\n  if (0 < iVar11) {\n    iVar9 = iVar11;\n    if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }\n  }\n  if (iVar8 == *(int *)puVar6) {\n    return iVar18;\n  }\n  pcVar25 = sg_ll_request_sense_com;\n  puVar24 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar7 = puStack_90;\n  puVar19 = puStack_98;\n  puStack_130 = puVar24 + 0x3c858;\n  puStack_c0 = puVar6;\n  piVar21 = *(int **)(puVar24 + 0x34a94);\n  iStack_b0 = verbose;\n  puStack_b4 = puVar15;\n  pvStack_c8 = resp;\n  piStack_b8 = residp;\n  iStack_d0 = mx_resp_len;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar21;\n  if (iVar9 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar17 = puVar20;\n  iStack_cc = iVar18;\n  iStack_c4 = iVar11;\n  iStack_bc = iVar10;\n  pcStack_ac = pcVar25;\n  if ((int)puStack_98 < 0x100) {\n    sStack_118 = (ushort)(byte)puStack_98 << 8;\n    if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar10 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);\n    mx_resp_len = (int)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);\n    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);\n    piStack_134 = &iStack_120;\n    uStack_13c = uStack_94 & 0xff;\n    puVar15 = (undefined *)(iVar10 + -0x19d0);\n    puStack_138 = puVar7;\n    puVar17 = puVar19;\n    puStack_140 = (undefined4 *)mx_resp_len;\n    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);\n    uVar16 = (undefined1)uVar12;\n    if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    iStack_124 = iStack_120;\n    (*pcVar25)(iVar8);\n    iStack_120 = iStack_124;\n  }\n  else {\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar21) {\n    return iStack_120;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_report_luns_com;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  puVar13 = puStack_140;\n  piStack_168 = piVar21;\n  piVar21 = *(int **)(pcVar25 + 0x347b4);\n  iStack_174 = iVar8;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar14;\n  iStack_17c = *piVar21;\n  puStack_15c = puVar20;\n  iStack_164 = iVar10;\n  puStack_178 = (undefined4 *)mx_resp_len;\n  pcStack_154 = pcVar26;\n  piStack_160 = residp;\n  puStack_16c = puVar7;\n  puStack_170 = puVar19;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar16;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar3 = (uint)auStack_1c2 & 3;\n  puVar4 = (uint *)(auStack_1c2 + -uVar3);\n  *puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar3 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar3) =\n       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8\n  ;\n  iVar8 = *(int *)(pcVar25 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\n    if (iVar9 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar5 = true;\n  }\n  else {\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }\n  (**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc);\n  (**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40);\n  (**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13);\n  uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);\n    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);\nLAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n    if (bVar5) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }\n  (*pcVar26)(iVar9);\nLAB_000203f8:\n  if (iStack_17c != *piVar21) {\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }\n  return (int)puVar13;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint8_t uVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined3 in_register_00000014;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "uint8_t *puVar17;" primitive_type (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint8_t *puVar19;" primitive_type (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint8_t *puVar20;" primitive_type (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined2 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined2 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "undefined4 *puStack_1cc;" type_identifier (pointer_declarator "*puStack_1cc" * identifier) ;) (declaration "undefined2 uStack_1c8;" type_identifier identifier ;) (declaration "undefined1 uStack_1c6;" type_identifier identifier ;) (declaration "undefined1 uStack_1c5;" type_identifier identifier ;) (declaration "undefined2 uStack_1c4;" type_identifier identifier ;) (declaration "undefined1 auStack_1c2 [4];" type_identifier (array_declarator "auStack_1c2 [4]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_1be;" type_identifier identifier ;) (declaration "undefined2 auStack_1bc [32];" type_identifier (array_declarator "auStack_1bc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "undefined4 *puStack_178;" type_identifier (pointer_declarator "*puStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "uint8_t *puStack_170;" primitive_type (pointer_declarator "*puStack_170" * identifier) ;) (declaration "undefined *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "uint8_t *puStack_15c;" primitive_type (pointer_declarator "*puStack_15c" * identifier) ;) (declaration "undefined *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "undefined4 *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "undefined *puStack_138;" type_identifier (pointer_declarator "*puStack_138" * identifier) ;) (declaration "int *piStack_134;" primitive_type (pointer_declarator "*piStack_134" * identifier) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "int iStack_120;" primitive_type identifier ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "short sStack_118;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_116 [66];" type_identifier (array_declarator "auStack_116 [66]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "void *pvStack_c8;" primitive_type (pointer_declarator "*pvStack_c8" * identifier) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int *piStack_b8;" primitive_type (pointer_declarator "*piStack_b8" * identifier) ;) (declaration "undefined *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "int iStack_b0;" primitive_type identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "uint8_t *puStack_98;" primitive_type (pointer_declarator "*puStack_98" * identifier) ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "int *piStack_8c;" primitive_type (pointer_declarator "*piStack_8c" * identifier) ;) (declaration "int sense_cat;" primitive_type identifier ;) (declaration "uint8_t inq_cdb [6];" primitive_type (array_declarator "inq_cdb [6]" identifier [ number_literal ]) ;) (declaration "uint8_t auStack_6e [2];" primitive_type (array_declarator "auStack_6e [2]" identifier [ number_literal ]) ;) (declaration "uint8_t sense_b [64];" primitive_type (array_declarator "sense_b [64]" identifier [ number_literal ]) ;) (expression_statement "puVar6 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar6 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar15 = PTR_s_tatus_00054840;" (assignment_expression "puVar15 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "iVar8 = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "inq_cdb[0] = '\x12';" (assignment_expression "inq_cdb[0] = '\x12'" (subscript_expression "inq_cdb[0]" identifier [ number_literal ]) = (char_literal "'\x12'" ' escape_sequence ')) ;) (expression_statement "inq_cdb[1] = '\0';" (assignment_expression "inq_cdb[1] = '\0'" (subscript_expression "inq_cdb[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (CONCAT31(in_register_00000014,cmddt) != 0) {\n    inq_cdb[0] = '\x12';\n    inq_cdb[1] = '\x02';\n  }" if (parenthesized_expression "(CONCAT31(in_register_00000014,cmddt) != 0)" ( (binary_expression "CONCAT31(in_register_00000014,cmddt) != 0" (call_expression "CONCAT31(in_register_00000014,cmddt)" identifier (argument_list "(in_register_00000014,cmddt)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n    inq_cdb[0] = '\x12';\n    inq_cdb[1] = '\x02';\n  }" { (expression_statement "inq_cdb[0] = '\x12';" (assignment_expression "inq_cdb[0] = '\x12'" (subscript_expression "inq_cdb[0]" identifier [ number_literal ]) = (char_literal "'\x12'" ' escape_sequence ')) ;) (expression_statement "inq_cdb[1] = '\x02';" (assignment_expression "inq_cdb[1] = '\x02'" (subscript_expression "inq_cdb[1]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) })) (if_statement "if (CONCAT31(in_register_00000018,evpd) != 0) {\n    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;\n  }" if (parenthesized_expression "(CONCAT31(in_register_00000018,evpd) != 0)" ( (binary_expression "CONCAT31(in_register_00000018,evpd) != 0" (call_expression "CONCAT31(in_register_00000018,evpd)" identifier (argument_list "(in_register_00000018,evpd)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n    inq_cdb._0_2_ = inq_cdb._0_2_ | 1;\n  }" { (expression_statement "inq_cdb._0_2_ = inq_cdb._0_2_ | 1;" (assignment_expression "inq_cdb._0_2_ = inq_cdb._0_2_ | 1" (field_expression "inq_cdb._0_2_" identifier . field_identifier) = (binary_expression "inq_cdb._0_2_ | 1" (field_expression "inq_cdb._0_2_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "inq_cdb[2] = (char)pg_op;" (assignment_expression "inq_cdb[2] = (char)pg_op" (subscript_expression "inq_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)pg_op" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_);" (assignment_expression "sense_cat = CONCAT22((short)mx_resp_len,sense_cat._2_2_)" identifier = (call_expression "CONCAT22((short)mx_resp_len,sense_cat._2_2_)" identifier (argument_list "((short)mx_resp_len,sense_cat._2_2_)" ( (cast_expression "(short)mx_resp_len" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "sense_cat._2_2_" identifier . field_identifier) )))) ;) (expression_statement "inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8);" (assignment_expression "inq_cdb[3] = (uint8_t)((uint)mx_resp_len >> 8)" (subscript_expression "inq_cdb[3]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((uint)mx_resp_len >> 8)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((uint)mx_resp_len >> 8)" ( (binary_expression "(uint)mx_resp_len >> 8" (cast_expression "(uint)mx_resp_len" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8;" (assignment_expression "inq_cdb._4_2_ = (ushort)(byte)mx_resp_len << 8" (field_expression "inq_cdb._4_2_" identifier . field_identifier) = (binary_expression "(ushort)(byte)mx_resp_len << 8" (cast_expression "(ushort)(byte)mx_resp_len" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)mx_resp_len" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (verbose != 0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar14 = PTR_LAB_0005483c + 0x1f1c;\n    puVar20 = inq_cdb;\n    do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar14 = PTR_LAB_0005483c + 0x1f1c;\n    puVar20 = inq_cdb;\n    do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x1a58" identifier + number_literal) ))) ;) (expression_statement "puVar14 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "puVar14 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar20 = inq_cdb;" (assignment_expression "puVar20 = inq_cdb" identifier = identifier) ;) (do_statement "do {\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    } while (puVar20 != auStack_6e);" do (compound_statement "{\n      uVar2 = *puVar20;\n      puVar20 = puVar20 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);\n    }" { (expression_statement "uVar2 = *puVar20;" (assignment_expression "uVar2 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(puVar14,uVar2)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14,uVar2)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(puVar20 != auStack_6e)" ( (binary_expression "puVar20 != auStack_6e" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) })) (if_statement "if (((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))\n  {\n    *(undefined1 *)((int)resp + 4) = 0;\n  }" if (parenthesized_expression "(((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len))" ( (binary_expression "((resp != (void *)0x0) && (0 < mx_resp_len)) && (*(undefined1 *)resp = 0x7f, 4 < mx_resp_len)" (parenthesized_expression "((resp != (void *)0x0) && (0 < mx_resp_len))" ( (binary_expression "(resp != (void *)0x0) && (0 < mx_resp_len)" (parenthesized_expression "(resp != (void *)0x0)" ( (binary_expression "resp != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < mx_resp_len)" ( (binary_expression "0 < mx_resp_len" number_literal < identifier) ))) )) && (parenthesized_expression "(*(undefined1 *)resp = 0x7f, 4 < mx_resp_len)" ( (comma_expression "*(undefined1 *)resp = 0x7f, 4 < mx_resp_len" (assignment_expression "*(undefined1 *)resp = 0x7f" (pointer_expression "*(undefined1 *)resp" * (cast_expression "(undefined1 *)resp" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) , (binary_expression "4 < mx_resp_len" number_literal < identifier)) ))) )) (compound_statement "{\n    *(undefined1 *)((int)resp + 4) = 0;\n  }" { (expression_statement "*(undefined1 *)((int)resp + 4) = 0;" (assignment_expression "*(undefined1 *)((int)resp + 4) = 0" (pointer_expression "*(undefined1 *)((int)resp + 4)" * (cast_expression "(undefined1 *)((int)resp + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)resp + 4)" ( (binary_expression "(int)resp + 4" (cast_expression "(int)resp" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (timeout_secs < 1) {\n    timeout_secs = 0x3c;\n  }" if (parenthesized_expression "(timeout_secs < 1)" ( (binary_expression "timeout_secs < 1" identifier < number_literal) )) (compound_statement "{\n    timeout_secs = 0x3c;\n  }" { (expression_statement "timeout_secs = 0x3c;" (assignment_expression "timeout_secs = 0x3c" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(ptvp,inq_cdb,6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp,inq_cdb,6)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(ptvp,sense_b,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp,sense_b,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(ptvp,resp,mx_resp_len)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp,resp,mx_resp_len)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose);" (assignment_expression "iVar9 = (*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(ptvp,0xffffffff,timeout_secs,verbose)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp,0xffffffff,timeout_secs,verbose)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "piStack_8c = &sense_cat;" (assignment_expression "piStack_8c = &sense_cat" identifier = (pointer_expression "&sense_cat" & identifier)) ;) (expression_statement "uStack_94 = (uint)noisy;" (assignment_expression "uStack_94 = (uint)noisy" identifier = (cast_expression "(uint)noisy" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar14 = puVar15 + -0x1a58;" (assignment_expression "puVar14 = puVar15 + -0x1a58" identifier = (binary_expression "puVar15 + -0x1a58" identifier + number_literal)) ;) (expression_statement "puStack_90 = (undefined *)verbose;" (assignment_expression "puStack_90 = (undefined *)verbose" identifier = (cast_expression "(undefined *)verbose" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar20 = (uint8_t *)mx_resp_len;" (assignment_expression "puVar20 = (uint8_t *)mx_resp_len" identifier = (cast_expression "(uint8_t *)mx_resp_len" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStack_98 = sense_b;" (assignment_expression "puStack_98 = sense_b" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp);" (assignment_expression "iVar10 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(ptvp)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp)" ( identifier )))) ;) (expression_statement "iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp);" (assignment_expression "iVar11 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)(ptvp)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_resid_0005493c" * (cast_expression "(code *)PTR_get_scsi_pt_resid_0005493c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp)" ( identifier )))) ;) (if_statement "if (residp != (int *)0x0) {\n    *residp = iVar11;\n  }" if (parenthesized_expression "(residp != (int *)0x0)" ( (binary_expression "residp != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *residp = iVar11;\n  }" { (expression_statement "*residp = iVar11;" (assignment_expression "*residp = iVar11" (pointer_expression "*residp" * identifier) = identifier) ;) })) (if_statement "if (iVar10 == -1) {\n    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);\n    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);\n  }\n  else if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);\n    iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);\n  }" { (expression_statement "uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp);" (assignment_expression "uVar12 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(ptvp)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ptvp)" ( identifier )))) ;) (expression_statement "iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12);" (assignment_expression "iVar18 = (*(code *)PTR_sg_convert_errno_00054928)(uVar12)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar12)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12)" ( identifier )))) ;) }) (else_clause "else if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }" else (if_statement "if (iVar10 == -2) {\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }\n  else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 == -2)" ( (binary_expression "iVar10 == -2" identifier == number_literal) )) (compound_statement "{\n    iVar18 = sense_cat;\n    if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }\n  }" { (expression_statement "iVar18 = sense_cat;" (assignment_expression "iVar18 = sense_cat" identifier = identifier) ;) (if_statement "if (sense_cat - 0x14U < 2) {\n      iVar18 = 0;\n    }" if (parenthesized_expression "(sense_cat - 0x14U < 2)" ( (binary_expression "sense_cat - 0x14U < 2" (binary_expression "sense_cat - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar18 = 0;\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }" else (compound_statement "{\n    iVar18 = 0;\n    if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }\n  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 < 4) {\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }" if (parenthesized_expression "(iVar10 < 4)" ( (binary_expression "iVar10 < 4" identifier < number_literal) )) (compound_statement "{\n      if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }\n    }" { (if_statement "if (verbose == 0) {\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }\n      else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }" if (parenthesized_expression "(verbose == 0)" ( (binary_expression "verbose == 0" identifier == number_literal) )) (compound_statement "{\n        puVar14 = PTR_s_tatus_00054840;\n        iVar18 = 0x61;\n      }" { (expression_statement "puVar14 = PTR_s_tatus_00054840;" (assignment_expression "puVar14 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "iVar18 = 0x61;" (assignment_expression "iVar18 = 0x61" identifier = number_literal) ;) }) (else_clause "else {\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }" else (compound_statement "{\n        puVar14 = PTR_s_tatus_00054840 + -0x1778;\n        iVar9 = iVar10;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        iVar18 = 0x61;\n      }" { (expression_statement "puVar14 = PTR_s_tatus_00054840 + -0x1778;" (assignment_expression "puVar14 = PTR_s_tatus_00054840 + -0x1778" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1778" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar10;" (assignment_expression "iVar9 = iVar10" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a40)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a40" identifier + number_literal) ))) ;) (expression_statement "iVar18 = 0x61;" (assignment_expression "iVar18 = 0x61" identifier = number_literal) ;) }))) })) }))))) (if_statement "if (0 < iVar11) {\n    iVar9 = iVar11;\n    if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }\n  }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n    iVar9 = iVar11;\n    if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }\n  }" { (expression_statement "iVar9 = iVar11;" (assignment_expression "iVar9 = iVar11" identifier = identifier) ;) (if_statement "if (mx_resp_len < iVar11) {\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }\n    else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }" if (parenthesized_expression "(mx_resp_len < iVar11)" ( (binary_expression "mx_resp_len < iVar11" identifier < identifier) )) (compound_statement "{\n      puVar14 = puVar15 + -0x1a58;\n      puVar20 = (uint8_t *)mx_resp_len;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }\n    }" { (expression_statement "puVar14 = puVar15 + -0x1a58;" (assignment_expression "puVar14 = puVar15 + -0x1a58" identifier = (binary_expression "puVar15 + -0x1a58" identifier + number_literal)) ;) (expression_statement "puVar20 = (uint8_t *)mx_resp_len;" (assignment_expression "puVar20 = (uint8_t *)mx_resp_len" identifier = (cast_expression "(uint8_t *)mx_resp_len" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a24)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a24" identifier + number_literal) ))) ;) (if_statement "if (iVar18 == 0) {\n        iVar18 = 0x61;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar18 = 0x61;\n      }" { (expression_statement "iVar18 = 0x61;" (assignment_expression "iVar18 = 0x61" identifier = number_literal) ;) })) }) (else_clause "else {\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }" else (compound_statement "{\n      puVar14 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));\n    }" { (expression_statement "puVar14 = (undefined *)0x0;" (assignment_expression "puVar14 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11));" (call_expression "(*(code *)PTR_memset_00054968)((int)resp + (mx_resp_len - iVar11))" (parenthesized_expression "(*(code *)PTR_memset_00054968)" ( (pointer_expression "*(code *)PTR_memset_00054968" * (cast_expression "(code *)PTR_memset_00054968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)resp + (mx_resp_len - iVar11))" ( (binary_expression "(int)resp + (mx_resp_len - iVar11)" (cast_expression "(int)resp" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(mx_resp_len - iVar11)" ( (binary_expression "mx_resp_len - iVar11" identifier - identifier) ))) ))) ;) }))) })) (if_statement "if (iVar8 == *(int *)puVar6) {\n    return iVar18;\n  }" if (parenthesized_expression "(iVar8 == *(int *)puVar6)" ( (binary_expression "iVar8 == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar18;\n  }" { (return_statement "return iVar18;" return identifier ;) })) (expression_statement "pcVar25 = sg_ll_request_sense_com;" (assignment_expression "pcVar25 = sg_ll_request_sense_com" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = puStack_90;" (assignment_expression "puVar7 = puStack_90" identifier = identifier) ;) (expression_statement "puVar19 = puStack_98;" (assignment_expression "puVar19 = puStack_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar24 + 0x3c858;" (assignment_expression "puStack_130 = puVar24 + 0x3c858" identifier = (binary_expression "puVar24 + 0x3c858" identifier + number_literal)) ;) (expression_statement "puStack_c0 = puVar6;" (assignment_expression "puStack_c0 = puVar6" identifier = identifier) ;) (expression_statement "piVar21 = *(int **)(puVar24 + 0x34a94);" (assignment_expression "piVar21 = *(int **)(puVar24 + 0x34a94)" identifier = (pointer_expression "*(int **)(puVar24 + 0x34a94)" * (cast_expression "(int **)(puVar24 + 0x34a94)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x34a94)" ( (binary_expression "puVar24 + 0x34a94" identifier + number_literal) ))))) ;) (expression_statement "iStack_b0 = verbose;" (assignment_expression "iStack_b0 = verbose" identifier = identifier) ;) (expression_statement "puStack_b4 = puVar15;" (assignment_expression "puStack_b4 = puVar15" identifier = identifier) ;) (expression_statement "pvStack_c8 = resp;" (assignment_expression "pvStack_c8 = resp" identifier = identifier) ;) (expression_statement "piStack_b8 = residp;" (assignment_expression "piStack_b8 = residp" identifier = identifier) ;) (expression_statement "iStack_d0 = mx_resp_len;" (assignment_expression "iStack_d0 = mx_resp_len" identifier = identifier) ;) (expression_statement "uStack_11c = 0x3000000;" (assignment_expression "uStack_11c = 0x3000000" identifier = number_literal) ;) (expression_statement "sStack_118 = 0;" (assignment_expression "sStack_118 = 0" identifier = number_literal) ;) (expression_statement "iStack_d4 = *piVar21;" (assignment_expression "iStack_d4 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (if_statement "if (iVar9 != 0) {\n    uStack_11c = 0x3010000;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_11c = 0x3010000;\n  }" { (expression_statement "uStack_11c = 0x3010000;" (assignment_expression "uStack_11c = 0x3010000" identifier = number_literal) ;) })) (expression_statement "puVar17 = puVar20;" (assignment_expression "puVar17 = puVar20" identifier = identifier) ;) (expression_statement "iStack_cc = iVar18;" (assignment_expression "iStack_cc = iVar18" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar11;" (assignment_expression "iStack_c4 = iVar11" identifier = identifier) ;) (expression_statement "iStack_bc = iVar10;" (assignment_expression "iStack_bc = iVar10" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar25;" (assignment_expression "pcStack_ac = pcVar25" identifier = identifier) ;) (if_statement "if ((int)puStack_98 < 0x100) {\n    sStack_118 = (ushort)(byte)puStack_98 << 8;\n    if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar10 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);\n    mx_resp_len = (int)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);\n    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);\n    piStack_134 = &iStack_120;\n    uStack_13c = uStack_94 & 0xff;\n    puVar15 = (undefined *)(iVar10 + -0x19d0);\n    puStack_138 = puVar7;\n    puVar17 = puVar19;\n    puStack_140 = (undefined4 *)mx_resp_len;\n    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);\n    uVar16 = (undefined1)uVar12;\n    if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    iStack_124 = iStack_120;\n    (*pcVar25)(iVar8);\n    iStack_120 = iStack_124;\n  }\n  else {\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }" if (parenthesized_expression "((int)puStack_98 < 0x100)" ( (binary_expression "(int)puStack_98 < 0x100" (cast_expression "(int)puStack_98" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    sStack_118 = (ushort)(byte)puStack_98 << 8;\n    if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar10 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);\n    mx_resp_len = (int)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);\n    uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);\n    piStack_134 = &iStack_120;\n    uStack_13c = uStack_94 & 0xff;\n    puVar15 = (undefined *)(iVar10 + -0x19d0);\n    puStack_138 = puVar7;\n    puVar17 = puVar19;\n    puStack_140 = (undefined4 *)mx_resp_len;\n    iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);\n    uVar16 = (undefined1)uVar12;\n    if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    iStack_124 = iStack_120;\n    (*pcVar25)(iVar8);\n    iStack_120 = iStack_124;\n  }" { (expression_statement "sStack_118 = (ushort)(byte)puStack_98 << 8;" (assignment_expression "sStack_118 = (ushort)(byte)puStack_98 << 8" identifier = (binary_expression "(ushort)(byte)puStack_98 << 8" (cast_expression "(ushort)(byte)puStack_98" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)puStack_98" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (puStack_90 == (undefined *)0x0) {\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" if (parenthesized_expression "(puStack_90 == (undefined *)0x0)" ( (binary_expression "puStack_90 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar25 = *(code **)(puVar24 + 0x34978);\n      if (iVar8 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      residp = (int *)0x1;\n    }" { (expression_statement "pcVar25 = *(code **)(puVar24 + 0x34978);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0x34978)" identifier = (pointer_expression "*(code **)(puVar24 + 0x34978)" * (cast_expression "(code **)(puVar24 + 0x34978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x34978)" ( (binary_expression "puVar24 + 0x34978" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000201d0;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000201d0;" goto statement_identifier ;)) (labeled_statement "LAB_0002004c:\n      residp = (int *)0x1;" statement_identifier : (expression_statement "residp = (int *)0x1;" (assignment_expression "residp = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" else (compound_statement "{\n      (**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);\n      iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar13 = &uStack_11c;\n      do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar8 != 0) goto LAB_0002004c;\n      pcVar25 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar16 = (undefined1)iVar9;\n      residp = (int *)0x0;\n      puVar15 = puVar7;\n      iVar8 = (*pcVar25)(puVar14,puVar7);\n      if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" { (expression_statement "(**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0);" (call_expression "(**(code **)(puVar24 + 0x34934))\n                (*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0)" (parenthesized_expression "(**(code **)(puVar24 + 0x34934))" ( (pointer_expression "**(code **)(puVar24 + 0x34934)" * (pointer_expression "*(code **)(puVar24 + 0x34934)" * (cast_expression "(code **)(puVar24 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x34934)" ( (binary_expression "puVar24 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0x34888) + -0x19c0,*(int *)(puVar24 + 0x34888) + -0x19d0)" ( (binary_expression "*(int *)(puVar24 + 0x34888) + -0x19c0" (pointer_expression "*(int *)(puVar24 + 0x34888)" * (cast_expression "(int *)(puVar24 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x34888)" ( (binary_expression "puVar24 + 0x34888" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0x34888) + -0x19d0" (pointer_expression "*(int *)(puVar24 + 0x34888)" * (cast_expression "(int *)(puVar24 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x34888)" ( (binary_expression "puVar24 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;" (assignment_expression "iVar10 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar13 = &uStack_11c;" (assignment_expression "puVar13 = &uStack_11c" identifier = (pointer_expression "&uStack_11c" & identifier)) ;) (do_statement "do {\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      } while ((undefined1 *)mx_resp_len != auStack_116);" do (compound_statement "{\n        mx_resp_len = (int)puVar13 + 1;\n        (**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);\n        puVar13 = (undefined4 *)mx_resp_len;\n      }" { (expression_statement "mx_resp_len = (int)puVar13 + 1;" (assignment_expression "mx_resp_len = (int)puVar13 + 1" identifier = (binary_expression "(int)puVar13 + 1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(iVar10,*(undefined1 *)puVar13)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(undefined1 *)puVar13)" ( identifier , (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar13 = (undefined4 *)mx_resp_len;" (assignment_expression "puVar13 = (undefined4 *)mx_resp_len" identifier = (cast_expression "(undefined4 *)mx_resp_len" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((undefined1 *)mx_resp_len != auStack_116)" ( (binary_expression "(undefined1 *)mx_resp_len != auStack_116" (cast_expression "(undefined1 *)mx_resp_len" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar8 != 0) goto LAB_0002004c;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002004c;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7ee0);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7ee0)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ee0)" * (cast_expression "(code **)(puStack_130 + -0x7ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee0)" ( (binary_expression "puStack_130 + -0x7ee0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000201d0:\n      uVar16 = (undefined1)iVar9;" statement_identifier : (expression_statement "uVar16 = (undefined1)iVar9;" (assignment_expression "uVar16 = (undefined1)iVar9" identifier = (cast_expression "(undefined1)iVar9" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "residp = (int *)0x0;" (assignment_expression "residp = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = puVar7;" (assignment_expression "puVar15 = puVar7" identifier = identifier) ;) (expression_statement "iVar8 = (*pcVar25)(puVar14,puVar7);" (assignment_expression "iVar8 = (*pcVar25)(puVar14,puVar7)" identifier = (call_expression "(*pcVar25)(puVar14,puVar7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puVar14,puVar7)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" { (expression_statement "iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc);" (assignment_expression "iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(0xc)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7ee8))(0xc)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal )))) ;) (goto_statement "goto LAB_00020118;" goto statement_identifier ;) })) }))) (expression_statement "iVar10 = *(int *)(puStack_130 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puStack_130 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar8,&uStack_11c,6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar8,&uStack_11c,6)" ( identifier , (pointer_expression "&uStack_11c" & identifier) , number_literal ))) ;) (expression_statement "mx_resp_len = (int)(auStack_116 + 2);" (assignment_expression "mx_resp_len = (int)(auStack_116 + 2)" identifier = (cast_expression "(int)(auStack_116 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(auStack_116 + 2)" ( (binary_expression "auStack_116 + 2" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar8,mx_resp_len,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar8,mx_resp_len,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19);" (call_expression "(**(code **)(puStack_130 + -0x7d90))(iVar8,puVar20,puVar19)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d90))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d90)" * (pointer_expression "*(code **)(puStack_130 + -0x7d90)" * (cast_expression "(code **)(puStack_130 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d90)" ( (binary_expression "puStack_130 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar8,puVar20,puVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7);" (assignment_expression "uVar12 = (**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar8,0xffffffff,0x3c,puVar7)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar8,0xffffffff,0x3c,puVar7)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "piStack_134 = &iStack_120;" (assignment_expression "piStack_134 = &iStack_120" identifier = (pointer_expression "&iStack_120" & identifier)) ;) (expression_statement "uStack_13c = uStack_94 & 0xff;" (assignment_expression "uStack_13c = uStack_94 & 0xff" identifier = (binary_expression "uStack_94 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar15 = (undefined *)(iVar10 + -0x19d0);" (assignment_expression "puVar15 = (undefined *)(iVar10 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar10 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x19d0)" ( (binary_expression "iVar10 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "puStack_138 = puVar7;" (assignment_expression "puStack_138 = puVar7" identifier = identifier) ;) (expression_statement "puVar17 = puVar19;" (assignment_expression "puVar17 = puVar19" identifier = identifier) ;) (expression_statement "puStack_140 = (undefined4 *)mx_resp_len;" (assignment_expression "puStack_140 = (undefined4 *)mx_resp_len" identifier = (cast_expression "(undefined4 *)mx_resp_len" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19);" (assignment_expression "iVar9 = (**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar8,puVar15,uVar12,puVar19)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar8,puVar15,uVar12,puVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar16 = (undefined1)uVar12;" (assignment_expression "uVar16 = (undefined1)uVar12" identifier = (cast_expression "(undefined1)uVar12" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar9 == -1) {\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);\n      iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);\nLAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n      if (residp != (int *)0x0) goto LAB_00020118;\n    }" { (expression_statement "uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8);" (assignment_expression "uVar12 = (**(code **)(puStack_130 + -0x7d74))(iVar8)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar8)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12);" (assignment_expression "iStack_120 = (**(code **)(puStack_130 + -0x7ee8))(uVar12)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar12)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier )))) ;) (labeled_statement "LAB_00020110:\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);" statement_identifier : (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;)) (if_statement "if (residp != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(residp != (int *)0x0)" ( (binary_expression "residp != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) }) (else_clause "else {\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }" else (compound_statement "{\n      puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);\n      if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }\n      if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }\n      if (residp != (int *)0x0) goto LAB_00020118;\n      pcVar25 = *(code **)(puStack_130 + -0x7ea4);\n    }" { (expression_statement "puVar19 = (uint8_t *)(uint)((int)puVar19 < 8);" (assignment_expression "puVar19 = (uint8_t *)(uint)((int)puVar19 < 8)" identifier = (cast_expression "(uint8_t *)(uint)((int)puVar19 < 8)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)puVar19 < 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar19 < 8)" ( (binary_expression "(int)puVar19 < 8" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (if_statement "if (iVar9 != -2) {\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }" if (parenthesized_expression "(iVar9 != -2)" ( (binary_expression "iVar9 != -2" identifier != number_literal) )) (compound_statement "{\n        if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }\n        goto LAB_00020110;\n      }" { (if_statement "if ((puVar19 == (uint8_t *)0x0) && (iVar9 < 8)) {\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }\n        else {\n          iStack_120 = 0;\n        }" if (parenthesized_expression "((puVar19 == (uint8_t *)0x0) && (iVar9 < 8))" ( (binary_expression "(puVar19 == (uint8_t *)0x0) && (iVar9 < 8)" (parenthesized_expression "(puVar19 == (uint8_t *)0x0)" ( (binary_expression "puVar19 == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar9 < 8)" ( (binary_expression "iVar9 < 8" identifier < number_literal) ))) )) (compound_statement "{\n          if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }\n        }" { (if_statement "if (puVar7 == (undefined *)0x0) {\n            iStack_120 = -1;\n          }\n          else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }" if (parenthesized_expression "(puVar7 == (undefined *)0x0)" ( (binary_expression "puVar7 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iStack_120 = -1;\n          }" { (expression_statement "iStack_120 = -1;" (assignment_expression "iStack_120 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }" else (compound_statement "{\n            puVar15 = (undefined *)(iVar10 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);\n            uVar16 = (undefined1)iVar9;\n            iStack_120 = -1;\n          }" { (expression_statement "puVar15 = (undefined *)(iVar10 + -0x19d0);" (assignment_expression "puVar15 = (undefined *)(iVar10 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar10 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x19d0)" ( (binary_expression "iVar10 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar15)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x19b0" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar16 = (undefined1)iVar9;" (assignment_expression "uVar16 = (undefined1)iVar9" identifier = (cast_expression "(undefined1)iVar9" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iStack_120 = -1;" (assignment_expression "iStack_120 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iStack_120 = 0;\n        }" else (compound_statement "{\n          iStack_120 = 0;\n        }" { (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00020110;" goto statement_identifier ;) })) (if_statement "if (iStack_120 - 0x14U < 2) {\n        iStack_120 = 0;\n      }" if (parenthesized_expression "(iStack_120 - 0x14U < 2)" ( (binary_expression "iStack_120 - 0x14U < 2" (binary_expression "iStack_120 - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iStack_120 = 0;\n      }" { (expression_statement "iStack_120 = 0;" (assignment_expression "iStack_120 = 0" identifier = number_literal) ;) })) (if_statement "if (residp != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(residp != (int *)0x0)" ( (binary_expression "residp != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;) }))) (expression_statement "iStack_124 = iStack_120;" (assignment_expression "iStack_124 = iStack_120" identifier = identifier) ;) (expression_statement "(*pcVar25)(iVar8);" (call_expression "(*pcVar25)(iVar8)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iStack_120 = iStack_124;" (assignment_expression "iStack_120 = iStack_124" identifier = identifier) ;) }) (else_clause "else {\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }" else (compound_statement "{\n    puVar15 = puVar14;\n    (**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);\n    uVar16 = (undefined1)iVar9;\n    iStack_120 = -1;\n  }" { (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) (expression_statement "(**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0);" (call_expression "(**(code **)(puVar24 + 0x34934))(*(int *)(puVar24 + 0x34888) + -0x19f0)" (parenthesized_expression "(**(code **)(puVar24 + 0x34934))" ( (pointer_expression "**(code **)(puVar24 + 0x34934)" * (pointer_expression "*(code **)(puVar24 + 0x34934)" * (cast_expression "(code **)(puVar24 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x34934)" ( (binary_expression "puVar24 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0x34888) + -0x19f0)" ( (binary_expression "*(int *)(puVar24 + 0x34888) + -0x19f0" (pointer_expression "*(int *)(puVar24 + 0x34888)" * (cast_expression "(int *)(puVar24 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x34888)" ( (binary_expression "puVar24 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar16 = (undefined1)iVar9;" (assignment_expression "uVar16 = (undefined1)iVar9" identifier = (cast_expression "(undefined1)iVar9" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iStack_120 = -1;" (assignment_expression "iStack_120 = -1" identifier = number_literal) ;) }))) (labeled_statement "LAB_00020118:\n  if (iStack_d4 == *piVar21) {\n    return iStack_120;\n  }" statement_identifier : (if_statement "if (iStack_d4 == *piVar21) {\n    return iStack_120;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar21)" ( (binary_expression "iStack_d4 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n    return iStack_120;\n  }" { (return_statement "return iStack_120;" return identifier ;) }))) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_report_luns_com;" (assignment_expression "pcVar26 = sg_ll_report_luns_com" identifier = identifier) ;) (expression_statement "iVar9 = iStack_d4;" (assignment_expression "iVar9 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puStack_140;" (assignment_expression "puVar13 = puStack_140" identifier = identifier) ;) (expression_statement "piStack_168 = piVar21;" (assignment_expression "piStack_168 = piVar21" identifier = identifier) ;) (expression_statement "piVar21 = *(int **)(pcVar25 + 0x347b4);" (assignment_expression "piVar21 = *(int **)(pcVar25 + 0x347b4)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x347b4)" * (cast_expression "(int **)(pcVar25 + 0x347b4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x347b4)" ( (binary_expression "pcVar25 + 0x347b4" identifier + number_literal) ))))) ;) (expression_statement "iStack_174 = iVar8;" (assignment_expression "iStack_174 = iVar8" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0xa000;" (assignment_expression "uStack_1c8 = 0xa000" identifier = number_literal) ;) (expression_statement "puStack_158 = puVar14;" (assignment_expression "puStack_158 = puVar14" identifier = identifier) ;) (expression_statement "iStack_17c = *piVar21;" (assignment_expression "iStack_17c = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "puStack_15c = puVar20;" (assignment_expression "puStack_15c = puVar20" identifier = identifier) ;) (expression_statement "iStack_164 = iVar10;" (assignment_expression "iStack_164 = iVar10" identifier = identifier) ;) (expression_statement "puStack_178 = (undefined4 *)mx_resp_len;" (assignment_expression "puStack_178 = (undefined4 *)mx_resp_len" identifier = (cast_expression "(undefined4 *)mx_resp_len" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_154 = pcVar26;" (assignment_expression "pcStack_154 = pcVar26" identifier = identifier) ;) (expression_statement "piStack_160 = residp;" (assignment_expression "piStack_160 = residp" identifier = identifier) ;) (expression_statement "puStack_16c = puVar7;" (assignment_expression "puStack_16c = puVar7" identifier = identifier) ;) (expression_statement "puStack_170 = puVar19;" (assignment_expression "puStack_170 = puVar19" identifier = identifier) ;) (expression_statement "uStack_1c5 = 0;" (assignment_expression "uStack_1c5 = 0" identifier = number_literal) ;) (expression_statement "uStack_1be = 0;" (assignment_expression "uStack_1be = 0" identifier = number_literal) ;) (expression_statement "uStack_1c6 = uVar16;" (assignment_expression "uStack_1c6 = uVar16" identifier = identifier) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "puStack_1cc = puStack_140;" (assignment_expression "puStack_1cc = puStack_140" identifier = identifier) ;) (expression_statement "uVar3 = (uint)auStack_1c2 & 3;" (assignment_expression "uVar3 = (uint)auStack_1c2 & 3" identifier = (binary_expression "(uint)auStack_1c2 & 3" (cast_expression "(uint)auStack_1c2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar4 = (uint *)(auStack_1c2 + -uVar3);" (assignment_expression "puVar4 = (uint *)(auStack_1c2 + -uVar3)" identifier = (cast_expression "(uint *)(auStack_1c2 + -uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_1c2 + -uVar3)" ( (binary_expression "auStack_1c2 + -uVar3" identifier + (unary_expression "-uVar3" - identifier)) )))) ;) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8" (pointer_expression "*puVar4" * identifier) = (binary_expression "*puVar4 & -1 << (4 - uVar3) * 8 | (uint)puStack_140 >> uVar3 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar3) * 8" (pointer_expression "*puVar4" * identifier) & (binary_expression "-1 << (4 - uVar3) * 8" number_literal << (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" ( (binary_expression "4 - uVar3" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)puStack_140 >> uVar3 * 8" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar3 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = auStack_1c2 + 3;" (assignment_expression "puVar1 = auStack_1c2 + 3" identifier = (binary_expression "auStack_1c2 + 3" identifier + number_literal)) ;) (expression_statement "uVar3 = (uint)puVar1 & 3;" (assignment_expression "uVar3 = (uint)puVar1 & 3" identifier = (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar1 + -uVar3) =\n       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8\n  ;" (assignment_expression "*(uint *)(puVar1 + -uVar3) =\n       *(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar3)" * (cast_expression "(uint *)(puVar1 + -uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar3)" ( (binary_expression "puVar1 + -uVar3" identifier + (unary_expression "-uVar3" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8 | (int)puVar13 << (3 - uVar3) * 8" (binary_expression "*(uint *)(puVar1 + -uVar3) & 0xffffffffU >> (uVar3 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar3)" * (cast_expression "(uint *)(puVar1 + -uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar3)" ( (binary_expression "puVar1 + -uVar3" identifier + (unary_expression "-uVar3" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar3 + 1) * 8" number_literal >> (binary_expression "(uVar3 + 1) * 8" (parenthesized_expression "(uVar3 + 1)" ( (binary_expression "uVar3 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)puVar13 << (3 - uVar3) * 8" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar3) * 8" (parenthesized_expression "(3 - uVar3)" ( (binary_expression "3 - uVar3" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "iVar8 = *(int *)(pcVar25 + 0x345a8);" (assignment_expression "iVar8 = *(int *)(pcVar25 + 0x345a8)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x345a8)" * (cast_expression "(int *)(pcVar25 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x345a8)" ( (binary_expression "pcVar25 + 0x345a8" identifier + number_literal) ))))) ;) (if_statement "if (puStack_138 == (undefined *)0x0) {\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\n    if (iVar9 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar5 = true;\n  }\n  else {\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }" if (parenthesized_expression "(puStack_138 == (undefined *)0x0)" ( (binary_expression "puStack_138 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\n    if (iVar9 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar5 = true;\n  }" { (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x347bc);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x347bc)" * (cast_expression "(code **)(pcVar25 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x347bc)" ( (binary_expression "pcVar25 + 0x347bc" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00020494;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020494;" goto statement_identifier ;)) (labeled_statement "LAB_00020334:\n    bVar5 = true;" statement_identifier : (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;)) }) (else_clause "else {\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }" else (compound_statement "{\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar10 = *(int *)(pcVar25 + 0x345a4);\n    puVar22 = &uStack_1c8;\n    do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);\n    (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);\n    if (iVar9 != 0) goto LAB_00020334;\n    pcVar26 = *(code **)(pcVar25 + 0x347bc);\nLAB_00020494:\n    iVar9 = (*pcVar26)();\n    if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar5 = false;\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34654))" ( (pointer_expression "**(code **)(pcVar25 + 0x34654)" * (pointer_expression "*(code **)(pcVar25 + 0x34654)" * (cast_expression "(code **)(pcVar25 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34654)" ( (binary_expression "pcVar25 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar25 + 0x345a8) + -0x1a50" (pointer_expression "*(int *)(pcVar25 + 0x345a8)" * (cast_expression "(int *)(pcVar25 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x345a8)" ( (binary_expression "pcVar25 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "iVar10 = *(int *)(pcVar25 + 0x345a4);" (assignment_expression "iVar10 = *(int *)(pcVar25 + 0x345a4)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x345a4)" * (cast_expression "(int *)(pcVar25 + 0x345a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x345a4)" ( (binary_expression "pcVar25 + 0x345a4" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = &uStack_1c8;" (assignment_expression "puVar22 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    } while (auStack_1bc != puVar23);" do (compound_statement "{\n      puVar23 = (undefined2 *)((int)puVar22 + 1);\n      (**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);\n      puVar22 = puVar23;\n    }" { (expression_statement "puVar23 = (undefined2 *)((int)puVar22 + 1);" (assignment_expression "puVar23 = (undefined2 *)((int)puVar22 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar22 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + 1)" ( (binary_expression "(int)puVar22 + 1" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22);" (call_expression "(**(code **)(pcVar25 + 0x34654))(iVar10 + 0x1f1c,*(undefined1 *)puVar22)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34654))" ( (pointer_expression "**(code **)(pcVar25 + 0x34654)" * (pointer_expression "*(code **)(pcVar25 + 0x34654)" * (cast_expression "(code **)(pcVar25 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34654)" ( (binary_expression "pcVar25 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(iVar10 + 0x1f1c,*(undefined1 *)puVar22)" ( (binary_expression "iVar10 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)puVar22" * (cast_expression "(undefined1 *)puVar22" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar22 = puVar23;" (assignment_expression "puVar22 = puVar23" identifier = identifier) ;) }) while (parenthesized_expression "(auStack_1bc != puVar23)" ( (binary_expression "auStack_1bc != puVar23" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990);" (call_expression "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x990)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34654))" ( (pointer_expression "**(code **)(pcVar25 + 0x34654)" * (pointer_expression "*(code **)(pcVar25 + 0x34654)" * (cast_expression "(code **)(pcVar25 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34654)" ( (binary_expression "pcVar25 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x345a8) + -0x990)" ( (binary_expression "*(int *)(pcVar25 + 0x345a8) + -0x990" (pointer_expression "*(int *)(pcVar25 + 0x345a8)" * (cast_expression "(int *)(pcVar25 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x345a8)" ( (binary_expression "pcVar25 + 0x345a8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar9 != 0) goto LAB_00020334;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020334;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x347bc);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x347bc)" * (cast_expression "(code **)(pcVar25 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x347bc)" ( (binary_expression "pcVar25 + 0x347bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00020494:\n    iVar9 = (*pcVar26)();" statement_identifier : (expression_statement "iVar9 = (*pcVar26)();" (assignment_expression "iVar9 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar9 == 0) {\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" { (expression_statement "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar25 + 0x34654))(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34654))" ( (pointer_expression "**(code **)(pcVar25 + 0x34654)" * (pointer_expression "*(code **)(pcVar25 + 0x34654)" * (cast_expression "(code **)(pcVar25 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34654)" ( (binary_expression "pcVar25 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x345a8) + -0x1974,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar25 + 0x345a8) + -0x1974" (pointer_expression "*(int *)(pcVar25 + 0x345a8)" * (cast_expression "(int *)(pcVar25 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x345a8)" ( (binary_expression "pcVar25 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc);" (assignment_expression "puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar25 + 0x34690))(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar25 + 0x34690))(0xc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34690))" ( (pointer_expression "**(code **)(pcVar25 + 0x34690)" * (pointer_expression "*(code **)(pcVar25 + 0x34690)" * (cast_expression "(code **)(pcVar25 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34690)" ( (binary_expression "pcVar25 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;) })) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) }))) (expression_statement "(**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc);" (call_expression "(**(code **)(pcVar25 + 0x345c8))(iVar9,&uStack_1c8,0xc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x345c8))" ( (pointer_expression "**(code **)(pcVar25 + 0x345c8)" * (pointer_expression "*(code **)(pcVar25 + 0x345c8)" * (cast_expression "(code **)(pcVar25 + 0x345c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x345c8)" ( (binary_expression "pcVar25 + 0x345c8" identifier + number_literal) ))))) )) (argument_list "(iVar9,&uStack_1c8,0xc)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40);" (call_expression "(**(code **)(pcVar25 + 0x3465c))(iVar9,auStack_1bc,0x40)" (parenthesized_expression "(**(code **)(pcVar25 + 0x3465c))" ( (pointer_expression "**(code **)(pcVar25 + 0x3465c)" * (pointer_expression "*(code **)(pcVar25 + 0x3465c)" * (cast_expression "(code **)(pcVar25 + 0x3465c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x3465c)" ( (binary_expression "pcVar25 + 0x3465c" identifier + number_literal) ))))) )) (argument_list "(iVar9,auStack_1bc,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13);" (call_expression "(**(code **)(pcVar25 + 0x347e8))(iVar9,puVar17,puVar13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x347e8))" ( (pointer_expression "**(code **)(pcVar25 + 0x347e8)" * (pointer_expression "*(code **)(pcVar25 + 0x347e8)" * (cast_expression "(code **)(pcVar25 + 0x347e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x347e8)" ( (binary_expression "pcVar25 + 0x347e8" identifier + number_literal) ))))) )) (argument_list "(iVar9,puVar17,puVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138);" (assignment_expression "uVar12 = (**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138)" identifier = (call_expression "(**(code **)(pcVar25 + 0x346ec))(iVar9,puVar15,0x3c,puStack_138)" (parenthesized_expression "(**(code **)(pcVar25 + 0x346ec))" ( (pointer_expression "**(code **)(pcVar25 + 0x346ec)" * (pointer_expression "*(code **)(pcVar25 + 0x346ec)" * (cast_expression "(code **)(pcVar25 + 0x346ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x346ec)" ( (binary_expression "pcVar25 + 0x346ec" identifier + number_literal) ))))) )) (argument_list "(iVar9,puVar15,0x3c,puStack_138)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar8 = (**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);" (assignment_expression "iVar8 = (**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" identifier = (call_expression "(**(code **)(pcVar25 + 0x34638))\n                    (iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34638))" ( (pointer_expression "**(code **)(pcVar25 + 0x34638)" * (pointer_expression "*(code **)(pcVar25 + 0x34638)" * (cast_expression "(code **)(pcVar25 + 0x34638)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34638)" ( (binary_expression "pcVar25 + 0x34638" identifier + number_literal) ))))) )) (argument_list "(iVar9,iVar8 + -0x1980,uVar12,puVar13,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" ( identifier , (binary_expression "iVar8 + -0x1980" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "uStack_13c & 0xff" identifier & number_literal) , identifier , (pointer_expression "&puStack_1cc" & identifier) )))) ;) (if_statement "if (iVar8 == -1) {\n    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);\n    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);\nLAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n    if (bVar5) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);\n    puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);\nLAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n    if (bVar5) goto LAB_000203f8;\n  }" { (expression_statement "uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9);" (assignment_expression "uVar12 = (**(code **)(pcVar25 + 0x34804))(iVar9)" identifier = (call_expression "(**(code **)(pcVar25 + 0x34804))(iVar9)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34804))" ( (pointer_expression "**(code **)(pcVar25 + 0x34804)" * (pointer_expression "*(code **)(pcVar25 + 0x34804)" * (cast_expression "(code **)(pcVar25 + 0x34804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34804)" ( (binary_expression "pcVar25 + 0x34804" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12);" (assignment_expression "puVar13 = (undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar25 + 0x34690))(uVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar25 + 0x34690))(uVar12)" (parenthesized_expression "(**(code **)(pcVar25 + 0x34690))" ( (pointer_expression "**(code **)(pcVar25 + 0x34690)" * (pointer_expression "*(code **)(pcVar25 + 0x34690)" * (cast_expression "(code **)(pcVar25 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34690)" ( (binary_expression "pcVar25 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(uVar12)" ( identifier ))))) ;) (labeled_statement "LAB_000203f0:\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);" statement_identifier : (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x346d4);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x346d4)" * (cast_expression "(code **)(pcVar25 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x346d4)" ( (binary_expression "pcVar25 + 0x346d4" identifier + number_literal) ))))) ;)) (if_statement "if (bVar5) goto LAB_000203f8;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }" else (compound_statement "{\n    if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar13 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }\n    if (bVar5) goto LAB_000203f8;\n    pcVar26 = *(code **)(pcVar25 + 0x346d4);\n  }" { (if_statement "if (iVar8 != -2) {\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" if (parenthesized_expression "(iVar8 != -2)" ( (binary_expression "iVar8 != -2" identifier != number_literal) )) (compound_statement "{\n      puVar13 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" { (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000203f0;" goto statement_identifier ;) })) (expression_statement "puVar13 = puStack_1cc;" (assignment_expression "puVar13 = puStack_1cc" identifier = identifier) ;) (if_statement "if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar13 = (undefined4 *)0x0;\n    }" if (parenthesized_expression "(puStack_1cc + -5 < (undefined4 *)0x2)" ( (binary_expression "puStack_1cc + -5 < (undefined4 *)0x2" (binary_expression "puStack_1cc + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar13 = (undefined4 *)0x0;\n    }" { (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (bVar5) goto LAB_000203f8;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x346d4);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x346d4)" * (cast_expression "(code **)(pcVar25 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x346d4)" ( (binary_expression "pcVar25 + 0x346d4" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar26)(iVar9);" (call_expression "(*pcVar26)(iVar9)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(iVar9)" ( identifier ))) ;) (labeled_statement "LAB_000203f8:\n  if (iStack_17c != *piVar21) {\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }" statement_identifier : (if_statement "if (iStack_17c != *piVar21) {\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_17c != *piVar21)" ( (binary_expression "iStack_17c != *piVar21" identifier != (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar25 + 0x34784);\n    (*pcVar25)();\n                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar8 = (**(code **)(pcVar25 + 0x343d8))();\n    return iVar8;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar25 + 0x34784);" (assignment_expression "pcVar25 = *(code **)(pcVar25 + 0x34784)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x34784)" * (cast_expression "(code **)(pcVar25 + 0x34784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x34784)" ( (binary_expression "pcVar25 + 0x34784" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) comment comment (expression_statement "iVar8 = (**(code **)(pcVar25 + 0x343d8))();" (assignment_expression "iVar8 = (**(code **)(pcVar25 + 0x343d8))()" identifier = (call_expression "(**(code **)(pcVar25 + 0x343d8))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x343d8))" ( (pointer_expression "**(code **)(pcVar25 + 0x343d8)" * (pointer_expression "*(code **)(pcVar25 + 0x343d8)" * (cast_expression "(code **)(pcVar25 + 0x343d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x343d8)" ( (binary_expression "pcVar25 + 0x343d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) }))) (return_statement "return (int)puVar13;" return (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "undefined4 *\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}\n\n" (function_definition "undefined4 *\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" type_identifier (pointer_declarator "*\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" * (function_declarator "FUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined1 param_4" type_identifier identifier) , (parameter_declaration "undefined1 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int *param_8" primitive_type (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "byte param_9" type_identifier identifier) , (parameter_declaration "undefined *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) )))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined3 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined2 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined2 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined4 *puStack_1cc;" type_identifier (pointer_declarator "*puStack_1cc" * identifier) ;) (declaration "undefined2 uStack_1c8;" type_identifier identifier ;) (declaration "undefined1 uStack_1c6;" type_identifier identifier ;) (declaration "undefined1 uStack_1c5;" type_identifier identifier ;) (declaration "undefined2 uStack_1c4;" type_identifier identifier ;) (declaration "undefined1 auStack_1c2 [4];" type_identifier (array_declarator "auStack_1c2 [4]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_1be;" type_identifier identifier ;) (declaration "undefined2 auStack_1bc [32];" type_identifier (array_declarator "auStack_1bc [32]" identifier [ number_literal ]) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "undefined4 *puStack_178;" type_identifier (pointer_declarator "*puStack_178" * identifier) ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "undefined4 *puStack_170;" type_identifier (pointer_declarator "*puStack_170" * identifier) ;) (declaration "undefined *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "undefined4 *puStack_15c;" type_identifier (pointer_declarator "*puStack_15c" * identifier) ;) (declaration "undefined *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "undefined4 *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "undefined *puStack_138;" type_identifier (pointer_declarator "*puStack_138" * identifier) ;) (declaration "undefined4 **ppuStack_134;" type_identifier (pointer_declarator "**ppuStack_134" * (pointer_declarator "*ppuStack_134" * identifier)) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "undefined4 *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "undefined4 *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined4 uStack_11c;" type_identifier identifier ;) (declaration "short sStack_118;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_116 [66];" type_identifier (array_declarator "auStack_116 [66]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "undefined4 *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "undefined4 *puStack_cc;" type_identifier (pointer_declarator "*puStack_cc" * identifier) ;) (declaration "undefined1 *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int *piStack_b8;" primitive_type (pointer_declarator "*piStack_b8" * identifier) ;) (declaration "undefined *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "undefined *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined4 **local_8c;" type_identifier (pointer_declarator "**local_8c" * (pointer_declarator "*local_8c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined3 local_74;" type_identifier identifier ;) (declaration "undefined1 uStack_71;" type_identifier identifier ;) (declaration "short local_70;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_6e [66];" type_identifier (array_declarator "auStack_6e [66]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar5 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar14 = PTR_s_tatus_00054840;" (assignment_expression "puVar14 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_74._0_2_ = 0x1200;" (assignment_expression "local_74._0_2_ = 0x1200" (field_expression "local_74._0_2_" identifier . field_identifier) = number_literal) ;) (if_statement "if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    local_74._0_2_ = 0x1202;\n  }" { (expression_statement "local_74._0_2_ = 0x1202;" (assignment_expression "local_74._0_2_ = 0x1202" (field_expression "local_74._0_2_" identifier . field_identifier) = number_literal) ;) })) (if_statement "if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" { (expression_statement "local_74._0_2_ = local_74._0_2_ | 1;" (assignment_expression "local_74._0_2_ = local_74._0_2_ | 1" (field_expression "local_74._0_2_" identifier . field_identifier) = (binary_expression "local_74._0_2_ | 1" (field_expression "local_74._0_2_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);" (assignment_expression "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" identifier = (cast_expression "(undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22((short)param_6,local_78._2_2_)" identifier (argument_list "((short)param_6,local_78._2_2_)" ( (cast_expression "(short)param_6" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "local_78._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));" (assignment_expression "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" identifier = (call_expression "CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" identifier (argument_list "(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" ( (call_expression "CONCAT21(local_74._0_2_,param_4)" identifier (argument_list "(local_74._0_2_,param_4)" ( (field_expression "local_74._0_2_" identifier . field_identifier) , identifier ))) , (cast_expression "(char)((uint)param_6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)param_6 >> 8)" ( (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "local_70 = (ushort)(byte)param_6 << 8;" (assignment_expression "local_70 = (ushort)(byte)param_6 << 8" identifier = (binary_expression "(ushort)(byte)param_6 << 8" (cast_expression "(ushort)(byte)param_6" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)param_6" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" if (parenthesized_expression "(param_10 != (undefined *)0x0)" ( (binary_expression "param_10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x1a58" identifier + number_literal) ))) ;) (expression_statement "puVar13 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "puVar13 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar19 = &local_74;" (assignment_expression "puVar19 = &local_74" identifier = (pointer_expression "&local_74" & identifier)) ;) (do_statement "do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);" do (compound_statement "{\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    }" { (expression_statement "uVar15 = *(undefined1 *)puVar19;" (assignment_expression "uVar15 = *(undefined1 *)puVar19" identifier = (pointer_expression "*(undefined1 *)puVar19" * (cast_expression "(undefined1 *)puVar19" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar19 = (undefined3 *)((int)puVar19 + 1);" (assignment_expression "puVar19 = (undefined3 *)((int)puVar19 + 1)" identifier = (cast_expression "(undefined3 *)((int)puVar19 + 1)" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 + 1)" ( (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,uVar15)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(puVar19 != (undefined3 *)auStack_6e)" ( (binary_expression "puVar19 != (undefined3 *)auStack_6e" identifier != (cast_expression "(undefined3 *)auStack_6e" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) })) (if_statement "if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }" if (parenthesized_expression "(((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))" ( (binary_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6)" (parenthesized_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6))" ( (binary_expression "(param_5 != (undefined1 *)0x0) && (0 < (int)param_6)" (parenthesized_expression "(param_5 != (undefined1 *)0x0)" ( (binary_expression "param_5 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < (int)param_6)" ( (binary_expression "0 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(*param_5 = 0x7f, 4 < (int)param_6)" ( (comma_expression "*param_5 = 0x7f, 4 < (int)param_6" (assignment_expression "*param_5 = 0x7f" (pointer_expression "*param_5" * identifier) = number_literal) , (binary_expression "4 < (int)param_6" number_literal < (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    param_5[4] = 0;\n  }" { (expression_statement "param_5[4] = 0;" (assignment_expression "param_5[4] = 0" (subscript_expression "param_5[4]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (param_7 < 1) {\n    param_7 = 0x3c;\n  }" if (parenthesized_expression "(param_7 < 1)" ( (binary_expression "param_7 < 1" identifier < number_literal) )) (compound_statement "{\n    param_7 = 0x3c;\n  }" { (expression_statement "param_7 = 0x3c;" (assignment_expression "param_7 = 0x3c" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_74,6)" ( identifier , (pointer_expression "&local_74" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,auStack_6e + 2,0x40)" ( identifier , (binary_expression "auStack_6e + 2" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_5,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);" (assignment_expression "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0xffffffff,param_7,param_10)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_8c = &local_78;" (assignment_expression "local_8c = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_94 = (uint)param_9;" (assignment_expression "local_94 = (uint)param_9" identifier = (cast_expression "(uint)param_9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" identifier = (binary_expression "puVar14 + -0x1a58" identifier + number_literal)) ;) (expression_statement "local_90 = param_10;" (assignment_expression "local_90 = param_10" identifier = identifier) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "local_98 = (undefined4 *)(auStack_6e + 2);" (assignment_expression "local_98 = (undefined4 *)(auStack_6e + 2)" identifier = (cast_expression "(undefined4 *)(auStack_6e + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_6e + 2)" ( (binary_expression "auStack_6e + 2" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);" (assignment_expression "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);" (assignment_expression "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_resid_0005493c" * (cast_expression "(code *)PTR_get_scsi_pt_resid_0005493c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_8 = iVar9;\n  }" { (expression_statement "*param_8 = iVar9;" (assignment_expression "*param_8 = iVar9" (pointer_expression "*param_8" * identifier) = identifier) ;) })) (if_statement "if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }" { (expression_statement "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);" (assignment_expression "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10)" ( identifier ))))) ;) }) (else_clause "else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" else (if_statement "if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 == -2)" ( (binary_expression "iVar8 == -2" identifier == number_literal) )) (compound_statement "{\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }" { (expression_statement "puVar17 = local_78;" (assignment_expression "puVar17 = local_78" identifier = identifier) ;) (if_statement "if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }" if (parenthesized_expression "(local_78 + -5 < (undefined4 *)0x2)" ( (binary_expression "local_78 + -5 < (undefined4 *)0x2" (binary_expression "local_78 + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar17 = (undefined4 *)0x0;\n    }" { (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" else (compound_statement "{\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" { (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" if (parenthesized_expression "(iVar8 < 4)" ( (binary_expression "iVar8 < 4" identifier < number_literal) )) (compound_statement "{\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" { (if_statement "if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" if (parenthesized_expression "(param_10 == (undefined *)0x0)" ( (binary_expression "param_10 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar13 = PTR_s_tatus_00054840;" (assignment_expression "puVar13 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" else (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar13 = PTR_s_tatus_00054840 + -0x1778;" (assignment_expression "puVar13 = PTR_s_tatus_00054840 + -0x1778" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1778" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a40)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a40" identifier + number_literal) ))) ;) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) }))))) (if_statement "if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" if (parenthesized_expression "(0 < iVar9)" ( (binary_expression "0 < iVar9" number_literal < identifier) )) (compound_statement "{\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" { (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" identifier = identifier) ;) (if_statement "if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" if (parenthesized_expression "((int)param_6 < iVar9)" ( (binary_expression "(int)param_6 < iVar9" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" { (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" identifier = (binary_expression "puVar14 + -0x1a58" identifier + number_literal)) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a24)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a24" identifier + number_literal) ))) ;) (if_statement "if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }" if (parenthesized_expression "(puVar17 == (undefined4 *)0x0)" ( (binary_expression "puVar17 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar17 = (undefined4 *)0x61;\n      }" { (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" identifier = (cast_expression "(undefined4 *)0x61" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" else (compound_statement "{\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" { (expression_statement "puVar13 = (undefined *)0x0;" (assignment_expression "puVar13 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));" (call_expression "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9))" (parenthesized_expression "(*(code *)PTR_memset_00054968)" ( (pointer_expression "*(code *)PTR_memset_00054968" * (cast_expression "(code *)PTR_memset_00054968" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5 + ((int)param_6 - iVar9))" ( (binary_expression "param_5 + ((int)param_6 - iVar9)" identifier + (parenthesized_expression "((int)param_6 - iVar9)" ( (binary_expression "(int)param_6 - iVar9" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) ))) ))) ;) }))) })) (if_statement "if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar5)" ( (binary_expression "local_2c == *(int *)puVar5" identifier == (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar17;\n  }" { (return_statement "return puVar17;" return identifier ;) })) (expression_statement "pcVar24 = FUN_0001ffb8;" (assignment_expression "pcVar24 = FUN_0001ffb8" identifier = identifier) ;) (expression_statement "iVar11 = local_2c;" (assignment_expression "iVar11 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_90;" (assignment_expression "puVar6 = local_90" identifier = identifier) ;) (expression_statement "puVar18 = local_98;" (assignment_expression "puVar18 = local_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar23 + 0x3c858;" (assignment_expression "puStack_130 = puVar23 + 0x3c858" identifier = (binary_expression "puVar23 + 0x3c858" identifier + number_literal)) ;) (expression_statement "puStack_c0 = puVar5;" (assignment_expression "puStack_c0 = puVar5" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(puVar23 + 0x34a94);" (assignment_expression "piVar20 = *(int **)(puVar23 + 0x34a94)" identifier = (pointer_expression "*(int **)(puVar23 + 0x34a94)" * (cast_expression "(int **)(puVar23 + 0x34a94)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34a94)" ( (binary_expression "puVar23 + 0x34a94" identifier + number_literal) ))))) ;) (expression_statement "puStack_b0 = param_10;" (assignment_expression "puStack_b0 = param_10" identifier = identifier) ;) (expression_statement "puStack_b4 = puVar14;" (assignment_expression "puStack_b4 = puVar14" identifier = identifier) ;) (expression_statement "puStack_c8 = param_5;" (assignment_expression "puStack_c8 = param_5" identifier = identifier) ;) (expression_statement "piStack_b8 = param_8;" (assignment_expression "piStack_b8 = param_8" identifier = identifier) ;) (expression_statement "puStack_d0 = param_6;" (assignment_expression "puStack_d0 = param_6" identifier = identifier) ;) (expression_statement "uStack_11c = 0x3000000;" (assignment_expression "uStack_11c = 0x3000000" identifier = number_literal) ;) (expression_statement "sStack_118 = 0;" (assignment_expression "sStack_118 = 0" identifier = number_literal) ;) (expression_statement "iStack_d4 = *piVar20;" (assignment_expression "iStack_d4 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (if_statement "if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_11c = 0x3010000;\n  }" { (expression_statement "uStack_11c = 0x3010000;" (assignment_expression "uStack_11c = 0x3010000" identifier = number_literal) ;) })) (expression_statement "puVar16 = puVar12;" (assignment_expression "puVar16 = puVar12" identifier = identifier) ;) (expression_statement "puStack_cc = puVar17;" (assignment_expression "puStack_cc = puVar17" identifier = identifier) ;) (expression_statement "iStack_c4 = iVar9;" (assignment_expression "iStack_c4 = iVar9" identifier = identifier) ;) (expression_statement "iStack_bc = iVar8;" (assignment_expression "iStack_bc = iVar8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar24;" (assignment_expression "pcStack_ac = pcVar24" identifier = identifier) ;) (if_statement "if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" if (parenthesized_expression "((int)local_98 < 0x100)" ( (binary_expression "(int)local_98 < 0x100" (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }" { (expression_statement "sStack_118 = (ushort)(byte)local_98 << 8;" (assignment_expression "sStack_118 = (ushort)(byte)local_98 << 8" identifier = (binary_expression "(ushort)(byte)local_98 << 8" (cast_expression "(ushort)(byte)local_98" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)local_98" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (if_statement "if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" if (parenthesized_expression "(local_90 == (undefined *)0x0)" ( (binary_expression "local_90 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }" { (expression_statement "pcVar24 = *(code **)(puVar23 + 0x34978);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x34978)" identifier = (pointer_expression "*(code **)(puVar23 + 0x34978)" * (cast_expression "(code **)(puVar23 + 0x34978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34978)" ( (binary_expression "puVar23 + 0x34978" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_000201d0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000201d0;" goto statement_identifier ;)) (labeled_statement "LAB_0002004c:\n      param_8 = (int *)0x1;" statement_identifier : (expression_statement "param_8 = (int *)0x1;" (assignment_expression "param_8 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" else (compound_statement "{\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" { (expression_statement "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);" (call_expression "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" ( (pointer_expression "**(code **)(puVar23 + 0x34934)" * (pointer_expression "*(code **)(puVar23 + 0x34934)" * (cast_expression "(code **)(puVar23 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34934)" ( (binary_expression "puVar23 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" ( (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19c0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19d0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar17 = &uStack_11c;" (assignment_expression "puVar17 = &uStack_11c" identifier = (pointer_expression "&uStack_11c" & identifier)) ;) (do_statement "do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);" do (compound_statement "{\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      }" { (expression_statement "param_6 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "param_6 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar17 = param_6;" (assignment_expression "puVar17 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(param_6 != (undefined4 *)auStack_116)" ( (binary_expression "param_6 != (undefined4 *)auStack_116" identifier != (cast_expression "(undefined4 *)auStack_116" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002004c;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002004c;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ee0);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ee0)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ee0)" * (cast_expression "(code **)(puStack_130 + -0x7ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee0)" ( (binary_expression "puStack_130 + -0x7ee0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000201d0:\n      uVar15 = (undefined1)iVar7;" statement_identifier : (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "param_8 = (int *)0x0;" (assignment_expression "param_8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = puVar6;" (assignment_expression "puVar14 = puVar6" identifier = identifier) ;) (expression_statement "iVar11 = (*pcVar24)(puVar13,puVar6);" (assignment_expression "iVar11 = (*pcVar24)(puVar13,puVar6)" identifier = (call_expression "(*pcVar24)(puVar13,puVar6)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(puVar13,puVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" { (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_130 + -0x7ee8))(0xc)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (goto_statement "goto LAB_00020118;" goto statement_identifier ;) })) }))) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd0);" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar11,&uStack_11c,6)" ( identifier , (pointer_expression "&uStack_11c" & identifier) , number_literal ))) ;) (expression_statement "param_6 = (undefined4 *)(auStack_116 + 2);" (assignment_expression "param_6 = (undefined4 *)(auStack_116 + 2)" identifier = (cast_expression "(undefined4 *)(auStack_116 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_116 + 2)" ( (binary_expression "auStack_116 + 2" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar11,param_6,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);" (call_expression "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d90))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d90)" * (pointer_expression "*(code **)(puStack_130 + -0x7d90)" * (cast_expression "(code **)(puStack_130 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d90)" ( (binary_expression "puStack_130 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(iVar11,puVar12,puVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar11,0xffffffff,0x3c,puVar6)" ( identifier , number_literal , number_literal , identifier )))) ;) (expression_statement "ppuStack_134 = &puStack_120;" (assignment_expression "ppuStack_134 = &puStack_120" identifier = (pointer_expression "&puStack_120" & identifier)) ;) (expression_statement "uStack_13c = local_94 & 0xff;" (assignment_expression "uStack_13c = local_94 & 0xff" identifier = (binary_expression "local_94 & 0xff" identifier & number_literal)) ;) (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar8 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x19d0)" ( (binary_expression "iVar8 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "puStack_138 = puVar6;" (assignment_expression "puStack_138 = puVar6" identifier = identifier) ;) (expression_statement "puVar16 = puVar18;" (assignment_expression "puVar16 = puVar18" identifier = identifier) ;) (expression_statement "puStack_140 = param_6;" (assignment_expression "puStack_140 = param_6" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);" (assignment_expression "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar11,puVar14,uVar10,puVar18)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar15 = (undefined1)uVar10;" (assignment_expression "uVar15 = (undefined1)uVar10" identifier = (cast_expression "(undefined1)uVar10" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }" { (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" identifier = (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))))) ;) (labeled_statement "LAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);" statement_identifier : (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;)) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) }) (else_clause "else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" else (compound_statement "{\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" { (expression_statement "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);" (assignment_expression "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8)" identifier = (cast_expression "(undefined4 *)(uint)((int)puVar18 < 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)puVar18 < 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar18 < 8)" ( (binary_expression "(int)puVar18 < 8" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))))) ;) (if_statement "if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" if (parenthesized_expression "(iVar7 != -2)" ( (binary_expression "iVar7 != -2" identifier != number_literal) )) (compound_statement "{\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" { (if_statement "if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }" if (parenthesized_expression "((puVar18 == (undefined4 *)0x0) && (iVar7 < 8))" ( (binary_expression "(puVar18 == (undefined4 *)0x0) && (iVar7 < 8)" (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" ( (binary_expression "puVar18 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar7 < 8)" ( (binary_expression "iVar7 < 8" identifier < number_literal) ))) )) (compound_statement "{\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }" { (if_statement "if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" { (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" else (compound_statement "{\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" { (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" identifier = (cast_expression "(undefined *)(iVar8 + -0x19d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x19d0)" ( (binary_expression "iVar8 + -0x19d0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x19b0" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n          puStack_120 = (undefined4 *)0x0;\n        }" else (compound_statement "{\n          puStack_120 = (undefined4 *)0x0;\n        }" { (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_00020110;" goto statement_identifier ;) })) (if_statement "if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }" if (parenthesized_expression "(puStack_120 + -5 < (undefined4 *)0x2)" ( (binary_expression "puStack_120 + -5 < (undefined4 *)0x2" (binary_expression "puStack_120 + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puStack_120 = (undefined4 *)0x0;\n      }" { (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" if (parenthesized_expression "(param_8 != (int *)0x0)" ( (binary_expression "param_8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00020118;" goto statement_identifier ;)) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) ;) }))) (expression_statement "puStack_124 = puStack_120;" (assignment_expression "puStack_124 = puStack_120" identifier = identifier) ;) (expression_statement "(*pcVar24)(iVar11);" (call_expression "(*pcVar24)(iVar11)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "puStack_120 = puStack_124;" (assignment_expression "puStack_120 = puStack_124" identifier = identifier) ;) }) (else_clause "else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" else (compound_statement "{\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" { (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);" (call_expression "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" ( (pointer_expression "**(code **)(puVar23 + 0x34934)" * (pointer_expression "*(code **)(puVar23 + 0x34934)" * (cast_expression "(code **)(puVar23 + 0x34934)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x34934)" ( (binary_expression "puVar23 + 0x34934" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19f0)" ( (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19f0" (pointer_expression "*(int *)(puVar23 + 0x34888)" * (cast_expression "(int *)(puVar23 + 0x34888)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x34888)" ( (binary_expression "puVar23 + 0x34888" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" identifier = (cast_expression "(undefined1)iVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" identifier = (cast_expression "(undefined4 *)0xffffffff" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" statement_identifier : (if_statement "if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar20)" ( (binary_expression "iStack_d4 == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    return puStack_120;\n  }" { (return_statement "return puStack_120;" return identifier ;) }))) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar25 = FUN_00020298;" (assignment_expression "pcVar25 = FUN_00020298" identifier = identifier) ;) (expression_statement "iVar7 = iStack_d4;" (assignment_expression "iVar7 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puStack_140;" (assignment_expression "puVar17 = puStack_140" identifier = identifier) ;) (expression_statement "piStack_168 = piVar20;" (assignment_expression "piStack_168 = piVar20" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(pcVar24 + 0x347b4);" (assignment_expression "piVar20 = *(int **)(pcVar24 + 0x347b4)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x347b4)" * (cast_expression "(int **)(pcVar24 + 0x347b4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347b4)" ( (binary_expression "pcVar24 + 0x347b4" identifier + number_literal) ))))) ;) (expression_statement "iStack_174 = iVar11;" (assignment_expression "iStack_174 = iVar11" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0xa000;" (assignment_expression "uStack_1c8 = 0xa000" identifier = number_literal) ;) (expression_statement "puStack_158 = puVar13;" (assignment_expression "puStack_158 = puVar13" identifier = identifier) ;) (expression_statement "iStack_17c = *piVar20;" (assignment_expression "iStack_17c = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "puStack_15c = puVar12;" (assignment_expression "puStack_15c = puVar12" identifier = identifier) ;) (expression_statement "iStack_164 = iVar8;" (assignment_expression "iStack_164 = iVar8" identifier = identifier) ;) (expression_statement "puStack_178 = param_6;" (assignment_expression "puStack_178 = param_6" identifier = identifier) ;) (expression_statement "pcStack_154 = pcVar25;" (assignment_expression "pcStack_154 = pcVar25" identifier = identifier) ;) (expression_statement "piStack_160 = param_8;" (assignment_expression "piStack_160 = param_8" identifier = identifier) ;) (expression_statement "puStack_16c = puVar6;" (assignment_expression "puStack_16c = puVar6" identifier = identifier) ;) (expression_statement "puStack_170 = puVar18;" (assignment_expression "puStack_170 = puVar18" identifier = identifier) ;) (expression_statement "uStack_1c5 = 0;" (assignment_expression "uStack_1c5 = 0" identifier = number_literal) ;) (expression_statement "uStack_1be = 0;" (assignment_expression "uStack_1be = 0" identifier = number_literal) ;) (expression_statement "uStack_1c6 = uVar15;" (assignment_expression "uStack_1c6 = uVar15" identifier = identifier) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "puStack_1cc = puStack_140;" (assignment_expression "puStack_1cc = puStack_140" identifier = identifier) ;) (expression_statement "uVar2 = (uint)auStack_1c2 & 3;" (assignment_expression "uVar2 = (uint)auStack_1c2 & 3" identifier = (binary_expression "(uint)auStack_1c2 & 3" (cast_expression "(uint)auStack_1c2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar3 = (uint *)(auStack_1c2 + -uVar2);" (assignment_expression "puVar3 = (uint *)(auStack_1c2 + -uVar2)" identifier = (cast_expression "(uint *)(auStack_1c2 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_1c2 + -uVar2)" ( (binary_expression "auStack_1c2 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) ;) (expression_statement "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;" (assignment_expression "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (pointer_expression "*puVar3" * identifier) = (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8" (pointer_expression "*puVar3" * identifier) & (binary_expression "-1 << (4 - uVar2) * 8" number_literal << (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)puStack_140 >> uVar2 * 8" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar2 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = auStack_1c2 + 3;" (assignment_expression "puVar1 = auStack_1c2 + 3" identifier = (binary_expression "auStack_1c2 + 3" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)puVar1 & 3;" (assignment_expression "uVar2 = (uint)puVar1 & 3" identifier = (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;" (assignment_expression "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" * (cast_expression "(uint *)(puVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar2)" ( (binary_expression "puVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" * (cast_expression "(uint *)(puVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar2)" ( (binary_expression "puVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" number_literal >> (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)puVar17 << (3 - uVar2) * 8" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" ( (binary_expression "3 - uVar2" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x345a8);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x345a8)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) ))))) ;) (if_statement "if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" if (parenthesized_expression "(puStack_138 == (undefined *)0x0)" ( (binary_expression "puStack_138 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x347bc)" * (cast_expression "(code **)(pcVar24 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347bc)" ( (binary_expression "pcVar24 + 0x347bc" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00020494;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00020494;" goto statement_identifier ;)) (labeled_statement "LAB_00020334:\n    bVar4 = true;" statement_identifier : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;)) }) (else_clause "else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" else (compound_statement "{\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1a50" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(pcVar24 + 0x345a4);" (assignment_expression "iVar9 = *(int *)(pcVar24 + 0x345a4)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x345a4)" * (cast_expression "(int *)(pcVar24 + 0x345a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a4)" ( (binary_expression "pcVar24 + 0x345a4" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = &uStack_1c8;" (assignment_expression "puVar21 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);" do (compound_statement "{\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    }" { (expression_statement "puVar22 = (undefined2 *)((int)puVar21 + 1);" (assignment_expression "puVar22 = (undefined2 *)((int)puVar21 + 1)" identifier = (cast_expression "(undefined2 *)((int)puVar21 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 1)" ( (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);" (call_expression "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" ( (binary_expression "iVar9 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)puVar21" * (cast_expression "(undefined1 *)puVar21" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(auStack_1bc != puVar22)" ( (binary_expression "auStack_1bc != puVar22" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x990)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x990" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar7 != 0) goto LAB_00020334;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00020334;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x347bc)" * (cast_expression "(code **)(pcVar24 + 0x347bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347bc)" ( (binary_expression "pcVar24 + 0x347bc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00020494:\n    iVar7 = (*pcVar25)();" statement_identifier : (expression_statement "iVar7 = (*pcVar25)();" (assignment_expression "iVar7 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" { (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" ( (pointer_expression "**(code **)(pcVar24 + 0x34654)" * (pointer_expression "*(code **)(pcVar24 + 0x34654)" * (cast_expression "(code **)(pcVar24 + 0x34654)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34654)" ( (binary_expression "pcVar24 + 0x34654" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" ( (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1974" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" * (cast_expression "(int *)(pcVar24 + 0x345a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x345a8)" ( (binary_expression "pcVar24 + 0x345a8" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar8 + -0x1980" identifier + number_literal) ))) ;) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x34690))(0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" ( (pointer_expression "**(code **)(pcVar24 + 0x34690)" * (pointer_expression "*(code **)(pcVar24 + 0x34690)" * (cast_expression "(code **)(pcVar24 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34690)" ( (binary_expression "pcVar24 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))) (expression_statement "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);" (call_expression "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x345c8))" ( (pointer_expression "**(code **)(pcVar24 + 0x345c8)" * (pointer_expression "*(code **)(pcVar24 + 0x345c8)" * (cast_expression "(code **)(pcVar24 + 0x345c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x345c8)" ( (binary_expression "pcVar24 + 0x345c8" identifier + number_literal) ))))) )) (argument_list "(iVar7,&uStack_1c8,0xc)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);" (call_expression "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3465c))" ( (pointer_expression "**(code **)(pcVar24 + 0x3465c)" * (pointer_expression "*(code **)(pcVar24 + 0x3465c)" * (cast_expression "(code **)(pcVar24 + 0x3465c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x3465c)" ( (binary_expression "pcVar24 + 0x3465c" identifier + number_literal) ))))) )) (argument_list "(iVar7,auStack_1bc,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);" (call_expression "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17)" (parenthesized_expression "(**(code **)(pcVar24 + 0x347e8))" ( (pointer_expression "**(code **)(pcVar24 + 0x347e8)" * (pointer_expression "*(code **)(pcVar24 + 0x347e8)" * (cast_expression "(code **)(pcVar24 + 0x347e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x347e8)" ( (binary_expression "pcVar24 + 0x347e8" identifier + number_literal) ))))) )) (argument_list "(iVar7,puVar16,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" identifier = (call_expression "(**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" (parenthesized_expression "(**(code **)(pcVar24 + 0x346ec))" ( (pointer_expression "**(code **)(pcVar24 + 0x346ec)" * (pointer_expression "*(code **)(pcVar24 + 0x346ec)" * (cast_expression "(code **)(pcVar24 + 0x346ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346ec)" ( (binary_expression "pcVar24 + 0x346ec" identifier + number_literal) ))))) )) (argument_list "(iVar7,puVar14,0x3c,puStack_138)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);" (assignment_expression "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" identifier = (call_expression "(**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34638))" ( (pointer_expression "**(code **)(pcVar24 + 0x34638)" * (pointer_expression "*(code **)(pcVar24 + 0x34638)" * (cast_expression "(code **)(pcVar24 + 0x34638)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34638)" ( (binary_expression "pcVar24 + 0x34638" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" ( identifier , (binary_expression "iVar8 + -0x1980" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "uStack_13c & 0xff" identifier & number_literal) , identifier , (pointer_expression "&puStack_1cc" & identifier) )))) ;) (if_statement "if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }" { (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7)" identifier = (call_expression "(**(code **)(pcVar24 + 0x34804))(iVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34804))" ( (pointer_expression "**(code **)(pcVar24 + 0x34804)" * (pointer_expression "*(code **)(pcVar24 + 0x34804)" * (cast_expression "(code **)(pcVar24 + 0x34804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34804)" ( (binary_expression "pcVar24 + 0x34804" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x34690))(uVar10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" ( (pointer_expression "**(code **)(pcVar24 + 0x34690)" * (pointer_expression "*(code **)(pcVar24 + 0x34690)" * (cast_expression "(code **)(pcVar24 + 0x34690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34690)" ( (binary_expression "pcVar24 + 0x34690" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))))) ;) (labeled_statement "LAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x346d4)" * (cast_expression "(code **)(pcVar24 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346d4)" ( (binary_expression "pcVar24 + 0x346d4" identifier + number_literal) ))))) ;)) (if_statement "if (bVar4) goto LAB_000203f8;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" else (compound_statement "{\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" { (if_statement "if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" if (parenthesized_expression "(iVar8 != -2)" ( (binary_expression "iVar8 != -2" identifier != number_literal) )) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" { (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000203f0;" goto statement_identifier ;) })) (expression_statement "puVar12 = puStack_1cc;" (assignment_expression "puVar12 = puStack_1cc" identifier = identifier) ;) (if_statement "if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }" if (parenthesized_expression "(puStack_1cc + -5 < (undefined4 *)0x2)" ( (binary_expression "puStack_1cc + -5 < (undefined4 *)0x2" (binary_expression "puStack_1cc + -5" identifier + number_literal) < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n    }" { (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (bVar4) goto LAB_000203f8;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_000203f8;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x346d4)" * (cast_expression "(code **)(pcVar24 + 0x346d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x346d4)" ( (binary_expression "pcVar24 + 0x346d4" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar25)(iVar7);" (call_expression "(*pcVar25)(iVar7)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(iVar7)" ( identifier ))) ;) (labeled_statement "LAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" statement_identifier : (if_statement "if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" if (parenthesized_expression "(iStack_17c != *piVar20)" ( (binary_expression "iStack_17c != *piVar20" identifier != (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" { (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x34784);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x34784)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x34784)" * (cast_expression "(code **)(pcVar24 + 0x34784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x34784)" ( (binary_expression "pcVar24 + 0x34784" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x343d8))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x343d8))" ( (pointer_expression "**(code **)(pcVar24 + 0x343d8)" * (pointer_expression "*(code **)(pcVar24 + 0x343d8)" * (cast_expression "(code **)(pcVar24 + 0x343d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x343d8)" ( (binary_expression "pcVar24 + 0x343d8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (return_statement "return puVar12;" return identifier ;) }))) (return_statement "return puVar12;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * IDENT) = LIT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) })) }))))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) ))) ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ( 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 ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (binary_expression IDENT * LIT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (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 = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (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 ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (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 , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , 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 ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , IDENT , (pointer_expression & 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 ( 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 ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 ( ))))) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 *\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)\n\n{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" (* "*") (function_declarator "FUN_0001fc90(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" (identifier "FUN_0001fc90") (parameter_list "(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,\n            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined1 param_4" (type_identifier "undefined1") (identifier "param_4")) (, ",") (parameter_declaration "undefined1 *param_5" (type_identifier "undefined1") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int *param_8" (primitive_type "int") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "byte param_9" (type_identifier "byte") (identifier "param_9")) (, ",") (parameter_declaration "undefined *param_10" (type_identifier "undefined") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) () ")")))) (compound_statement "{\n  undefined1 *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined1 uVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined3 *puVar19;\n  int *piVar20;\n  undefined2 *puVar21;\n  undefined2 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  code *pcVar25;\n  undefined4 *puStack_1cc;\n  undefined2 uStack_1c8;\n  undefined1 uStack_1c6;\n  undefined1 uStack_1c5;\n  undefined2 uStack_1c4;\n  undefined1 auStack_1c2 [4];\n  undefined2 uStack_1be;\n  undefined2 auStack_1bc [32];\n  int iStack_17c;\n  undefined4 *puStack_178;\n  int iStack_174;\n  undefined4 *puStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  undefined *puStack_158;\n  code *pcStack_154;\n  undefined4 *puStack_140;\n  uint uStack_13c;\n  undefined *puStack_138;\n  undefined4 **ppuStack_134;\n  undefined *puStack_130;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined4 uStack_11c;\n  short sStack_118;\n  undefined1 auStack_116 [66];\n  int iStack_d4;\n  undefined4 *puStack_d0;\n  undefined4 *puStack_cc;\n  undefined1 *puStack_c8;\n  int iStack_c4;\n  undefined *puStack_c0;\n  int iStack_bc;\n  int *piStack_b8;\n  undefined *puStack_b4;\n  undefined *puStack_b0;\n  code *pcStack_ac;\n  undefined4 *local_98;\n  uint local_94;\n  undefined *local_90;\n  undefined4 **local_8c;\n  undefined4 *local_78;\n  undefined3 local_74;\n  undefined1 uStack_71;\n  short local_70;\n  undefined1 auStack_6e [66];\n  int local_2c;\n  \n  puVar5 = PTR___stack_chk_guard_00054a4c;\n  puVar14 = PTR_s_tatus_00054840;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  local_74._0_2_ = 0x1200;\n  if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }\n  if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }\n  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);\n  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));\n  local_70 = (ushort)(byte)param_6 << 8;\n  if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }\n  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }\n  if (param_7 < 1) {\n    param_7 = 0x3c;\n  }\n  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);\n  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);\n  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);\n  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);\n  local_8c = &local_78;\n  local_94 = (uint)param_9;\n  puVar13 = puVar14 + -0x1a58;\n  local_90 = param_10;\n  puVar12 = param_6;\n  local_98 = (undefined4 *)(auStack_6e + 2);\n  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);\n  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);\n  if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }\n  if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }\n  if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }\n  if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }\n  pcVar24 = FUN_0001ffb8;\n  iVar11 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  puVar6 = local_90;\n  puVar18 = local_98;\n  puStack_130 = puVar23 + 0x3c858;\n  puStack_c0 = puVar5;\n  piVar20 = *(int **)(puVar23 + 0x34a94);\n  puStack_b0 = param_10;\n  puStack_b4 = puVar14;\n  puStack_c8 = param_5;\n  piStack_b8 = param_8;\n  puStack_d0 = param_6;\n  uStack_11c = 0x3000000;\n  sStack_118 = 0;\n  iStack_d4 = *piVar20;\n  if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }\n  puVar16 = puVar12;\n  puStack_cc = puVar17;\n  iStack_c4 = iVar9;\n  iStack_bc = iVar8;\n  pcStack_ac = pcVar24;\n  if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }\nLAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }\n  pcVar24 = *(code **)(puStack_130 + -0x7df4);\n  pcVar25 = FUN_00020298;\n  iVar7 = iStack_d4;\n  (*pcVar24)();\n  puVar17 = puStack_140;\n  piStack_168 = piVar20;\n  piVar20 = *(int **)(pcVar24 + 0x347b4);\n  iStack_174 = iVar11;\n  uStack_1c8 = 0xa000;\n  puStack_158 = puVar13;\n  iStack_17c = *piVar20;\n  puStack_15c = puVar12;\n  iStack_164 = iVar8;\n  puStack_178 = param_6;\n  pcStack_154 = pcVar25;\n  piStack_160 = param_8;\n  puStack_16c = puVar6;\n  puStack_170 = puVar18;\n  uStack_1c5 = 0;\n  uStack_1be = 0;\n  uStack_1c6 = uVar15;\n  uStack_1c4 = 0;\n  puStack_1cc = puStack_140;\n  uVar2 = (uint)auStack_1c2 & 3;\n  puVar3 = (uint *)(auStack_1c2 + -uVar2);\n  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;\n  puVar1 = auStack_1c2 + 3;\n  uVar2 = (uint)puVar1 & 3;\n  *(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;\n  iVar8 = *(int *)(pcVar24 + 0x345a8);\n  if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }\n  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);\n  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);\n  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);\n  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);\n  iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);\n  if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }\n  (*pcVar25)(iVar7);\nLAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }\n  return puVar12;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined3 *puVar19;" (type_identifier "undefined3") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "undefined2 *puVar21;" (type_identifier "undefined2") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined2 *puVar22;" (type_identifier "undefined2") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "undefined4 *puStack_1cc;" (type_identifier "undefined4") (pointer_declarator "*puStack_1cc" (* "*") (identifier "puStack_1cc")) (; ";")) (declaration "undefined2 uStack_1c8;" (type_identifier "undefined2") (identifier "uStack_1c8") (; ";")) (declaration "undefined1 uStack_1c6;" (type_identifier "undefined1") (identifier "uStack_1c6") (; ";")) (declaration "undefined1 uStack_1c5;" (type_identifier "undefined1") (identifier "uStack_1c5") (; ";")) (declaration "undefined2 uStack_1c4;" (type_identifier "undefined2") (identifier "uStack_1c4") (; ";")) (declaration "undefined1 auStack_1c2 [4];" (type_identifier "undefined1") (array_declarator "auStack_1c2 [4]" (identifier "auStack_1c2") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined2 uStack_1be;" (type_identifier "undefined2") (identifier "uStack_1be") (; ";")) (declaration "undefined2 auStack_1bc [32];" (type_identifier "undefined2") (array_declarator "auStack_1bc [32]" (identifier "auStack_1bc") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int iStack_17c;" (primitive_type "int") (identifier "iStack_17c") (; ";")) (declaration "undefined4 *puStack_178;" (type_identifier "undefined4") (pointer_declarator "*puStack_178" (* "*") (identifier "puStack_178")) (; ";")) (declaration "int iStack_174;" (primitive_type "int") (identifier "iStack_174") (; ";")) (declaration "undefined4 *puStack_170;" (type_identifier "undefined4") (pointer_declarator "*puStack_170" (* "*") (identifier "puStack_170")) (; ";")) (declaration "undefined *puStack_16c;" (type_identifier "undefined") (pointer_declarator "*puStack_16c" (* "*") (identifier "puStack_16c")) (; ";")) (declaration "int *piStack_168;" (primitive_type "int") (pointer_declarator "*piStack_168" (* "*") (identifier "piStack_168")) (; ";")) (declaration "int iStack_164;" (primitive_type "int") (identifier "iStack_164") (; ";")) (declaration "int *piStack_160;" (primitive_type "int") (pointer_declarator "*piStack_160" (* "*") (identifier "piStack_160")) (; ";")) (declaration "undefined4 *puStack_15c;" (type_identifier "undefined4") (pointer_declarator "*puStack_15c" (* "*") (identifier "puStack_15c")) (; ";")) (declaration "undefined *puStack_158;" (type_identifier "undefined") (pointer_declarator "*puStack_158" (* "*") (identifier "puStack_158")) (; ";")) (declaration "code *pcStack_154;" (type_identifier "code") (pointer_declarator "*pcStack_154" (* "*") (identifier "pcStack_154")) (; ";")) (declaration "undefined4 *puStack_140;" (type_identifier "undefined4") (pointer_declarator "*puStack_140" (* "*") (identifier "puStack_140")) (; ";")) (declaration "uint uStack_13c;" (type_identifier "uint") (identifier "uStack_13c") (; ";")) (declaration "undefined *puStack_138;" (type_identifier "undefined") (pointer_declarator "*puStack_138" (* "*") (identifier "puStack_138")) (; ";")) (declaration "undefined4 **ppuStack_134;" (type_identifier "undefined4") (pointer_declarator "**ppuStack_134" (* "*") (pointer_declarator "*ppuStack_134" (* "*") (identifier "ppuStack_134"))) (; ";")) (declaration "undefined *puStack_130;" (type_identifier "undefined") (pointer_declarator "*puStack_130" (* "*") (identifier "puStack_130")) (; ";")) (declaration "undefined4 *puStack_124;" (type_identifier "undefined4") (pointer_declarator "*puStack_124" (* "*") (identifier "puStack_124")) (; ";")) (declaration "undefined4 *puStack_120;" (type_identifier "undefined4") (pointer_declarator "*puStack_120" (* "*") (identifier "puStack_120")) (; ";")) (declaration "undefined4 uStack_11c;" (type_identifier "undefined4") (identifier "uStack_11c") (; ";")) (declaration "short sStack_118;" (sized_type_specifier "short" (short "short")) (identifier "sStack_118") (; ";")) (declaration "undefined1 auStack_116 [66];" (type_identifier "undefined1") (array_declarator "auStack_116 [66]" (identifier "auStack_116") ([ "[") (number_literal "66") (] "]")) (; ";")) (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 "undefined4 *puStack_cc;" (type_identifier "undefined4") (pointer_declarator "*puStack_cc" (* "*") (identifier "puStack_cc")) (; ";")) (declaration "undefined1 *puStack_c8;" (type_identifier "undefined1") (pointer_declarator "*puStack_c8" (* "*") (identifier "puStack_c8")) (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "undefined *puStack_c0;" (type_identifier "undefined") (pointer_declarator "*puStack_c0" (* "*") (identifier "puStack_c0")) (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "int *piStack_b8;" (primitive_type "int") (pointer_declarator "*piStack_b8" (* "*") (identifier "piStack_b8")) (; ";")) (declaration "undefined *puStack_b4;" (type_identifier "undefined") (pointer_declarator "*puStack_b4" (* "*") (identifier "puStack_b4")) (; ";")) (declaration "undefined *puStack_b0;" (type_identifier "undefined") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "code *pcStack_ac;" (type_identifier "code") (pointer_declarator "*pcStack_ac" (* "*") (identifier "pcStack_ac")) (; ";")) (declaration "undefined4 *local_98;" (type_identifier "undefined4") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "undefined *local_90;" (type_identifier "undefined") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined4 **local_8c;" (type_identifier "undefined4") (pointer_declarator "**local_8c" (* "*") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c"))) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined3 local_74;" (type_identifier "undefined3") (identifier "local_74") (; ";")) (declaration "undefined1 uStack_71;" (type_identifier "undefined1") (identifier "uStack_71") (; ";")) (declaration "short local_70;" (sized_type_specifier "short" (short "short")) (identifier "local_70") (; ";")) (declaration "undefined1 auStack_6e [66];" (type_identifier "undefined1") (array_declarator "auStack_6e [66]" (identifier "auStack_6e") ([ "[") (number_literal "66") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar5 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_00054a4c" (identifier "puVar5") (= "=") (identifier "PTR___stack_chk_guard_00054a4c")) (; ";")) (expression_statement "puVar14 = PTR_s_tatus_00054840;" (assignment_expression "puVar14 = PTR_s_tatus_00054840" (identifier "puVar14") (= "=") (identifier "PTR_s_tatus_00054840")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00054a4c")))) (; ";")) (expression_statement "local_74._0_2_ = 0x1200;" (assignment_expression "local_74._0_2_ = 0x1200" (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x1200")) (; ";")) (if_statement "if (param_2 != 0) {\n    local_74._0_2_ = 0x1202;\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_74._0_2_ = 0x1202;\n  }" ({ "{") (expression_statement "local_74._0_2_ = 0x1202;" (assignment_expression "local_74._0_2_ = 0x1202" (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x1202")) (; ";")) (} "}"))) (if_statement "if (param_3 != 0) {\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_74._0_2_ = local_74._0_2_ | 1;\n  }" ({ "{") (expression_statement "local_74._0_2_ = local_74._0_2_ | 1;" (assignment_expression "local_74._0_2_ = local_74._0_2_ | 1" (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (= "=") (binary_expression "local_74._0_2_ | 1" (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);" (assignment_expression "local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" (identifier "local_78") (= "=") (cast_expression "(undefined4 *)CONCAT22((short)param_6,local_78._2_2_)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22((short)param_6,local_78._2_2_)" (identifier "CONCAT22") (argument_list "((short)param_6,local_78._2_2_)" (( "(") (cast_expression "(short)param_6" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "param_6")) (, ",") (field_expression "local_78._2_2_" (identifier "local_78") (. ".") (field_identifier "_2_2_")) () ")"))))) (; ";")) (expression_statement "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));" (assignment_expression "_local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" (identifier "_local_74") (= "=") (call_expression "CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" (identifier "CONCAT31") (argument_list "(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8))" (( "(") (call_expression "CONCAT21(local_74._0_2_,param_4)" (identifier "CONCAT21") (argument_list "(local_74._0_2_,param_4)" (( "(") (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (, ",") (identifier "param_4") () ")"))) (, ",") (cast_expression "(char)((uint)param_6 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)param_6 >> 8)" (( "(") (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")) (>> ">>") (number_literal "8")) () ")"))) () ")")))) (; ";")) (expression_statement "local_70 = (ushort)(byte)param_6 << 8;" (assignment_expression "local_70 = (ushort)(byte)param_6 << 8" (identifier "local_70") (= "=") (binary_expression "(ushort)(byte)param_6 << 8" (cast_expression "(ushort)(byte)param_6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (cast_expression "(byte)param_6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_6"))) (<< "<<") (number_literal "8"))) (; ";")) (if_statement "if (param_10 != (undefined *)0x0) {\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" (if "if") (parenthesized_expression "(param_10 != (undefined *)0x0)" (( "(") (binary_expression "param_10 != (undefined *)0x0" (identifier "param_10") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);\n    puVar13 = PTR_LAB_0005483c + 0x1f1c;\n    puVar19 = &local_74;\n    do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n  }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x1a50" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a50")) (, ",") (binary_expression "PTR_s_tatus_00054840 + -0x1a58" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a58")) () ")"))) (; ";")) (expression_statement "puVar13 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "puVar13 = PTR_LAB_0005483c + 0x1f1c" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0005483c + 0x1f1c" (identifier "PTR_LAB_0005483c") (+ "+") (number_literal "0x1f1c"))) (; ";")) (expression_statement "puVar19 = &local_74;" (assignment_expression "puVar19 = &local_74" (identifier "puVar19") (= "=") (pointer_expression "&local_74" (& "&") (identifier "local_74"))) (; ";")) (do_statement "do {\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    } while (puVar19 != (undefined3 *)auStack_6e);" (do "do") (compound_statement "{\n      uVar15 = *(undefined1 *)puVar19;\n      puVar19 = (undefined3 *)((int)puVar19 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = *(undefined1 *)puVar19;" (assignment_expression "uVar15 = *(undefined1 *)puVar19" (identifier "uVar15") (= "=") (pointer_expression "*(undefined1 *)puVar19" (* "*") (cast_expression "(undefined1 *)puVar19" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar19")))) (; ";")) (expression_statement "puVar19 = (undefined3 *)((int)puVar19 + 1);" (assignment_expression "puVar19 = (undefined3 *)((int)puVar19 + 1)" (identifier "puVar19") (= "=") (cast_expression "(undefined3 *)((int)puVar19 + 1)" (( "(") (type_descriptor "undefined3 *" (type_identifier "undefined3") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar19 + 1)" (( "(") (binary_expression "(int)puVar19 + 1" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(puVar13,uVar15)" (( "(") (identifier "puVar13") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar19 != (undefined3 *)auStack_6e)" (( "(") (binary_expression "puVar19 != (undefined3 *)auStack_6e" (identifier "puVar19") (!= "!=") (cast_expression "(undefined3 *)auStack_6e" (( "(") (type_descriptor "undefined3 *" (type_identifier "undefined3") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_6e"))) () ")")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x990)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x990" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (} "}"))) (if_statement "if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))\n  {\n    param_5[4] = 0;\n  }" (if "if") (parenthesized_expression "(((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))" (( "(") (binary_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6)" (parenthesized_expression "((param_5 != (undefined1 *)0x0) && (0 < (int)param_6))" (( "(") (binary_expression "(param_5 != (undefined1 *)0x0) && (0 < (int)param_6)" (parenthesized_expression "(param_5 != (undefined1 *)0x0)" (( "(") (binary_expression "param_5 != (undefined1 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)param_6)" (( "(") (binary_expression "0 < (int)param_6" (number_literal "0") (< "<") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*param_5 = 0x7f, 4 < (int)param_6)" (( "(") (comma_expression "*param_5 = 0x7f, 4 < (int)param_6" (assignment_expression "*param_5 = 0x7f" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0x7f")) (, ",") (binary_expression "4 < (int)param_6" (number_literal "4") (< "<") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")))) () ")"))) () ")")) (compound_statement "{\n    param_5[4] = 0;\n  }" ({ "{") (expression_statement "param_5[4] = 0;" (assignment_expression "param_5[4] = 0" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (param_7 < 1) {\n    param_7 = 0x3c;\n  }" (if "if") (parenthesized_expression "(param_7 < 1)" (( "(") (binary_expression "param_7 < 1" (identifier "param_7") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    param_7 = 0x3c;\n  }" ({ "{") (expression_statement "param_7 = 0x3c;" (assignment_expression "param_7 = 0x3c" (identifier "param_7") (= "=") (number_literal "0x3c")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_cdb_00054860"))) () ")")) (argument_list "(param_1,&local_74,6)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_74" (& "&") (identifier "local_74")) (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_sense_000548f4"))) () ")")) (argument_list "(param_1,auStack_6e + 2,0x40)" (( "(") (identifier "param_1") (, ",") (binary_expression "auStack_6e + 2" (identifier "auStack_6e") (+ "+") (number_literal "2")) (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_data_in_00054a80"))) () ")")) (argument_list "(param_1,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);" (assignment_expression "iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" (( "(") (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" (* "*") (cast_expression "(code *)PTR_do_scsi_pt_00054984" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_scsi_pt_00054984"))) () ")")) (argument_list "(param_1,0xffffffff,param_7,param_10)" (( "(") (identifier "param_1") (, ",") (number_literal "0xffffffff") (, ",") (identifier "param_7") (, ",") (identifier "param_10") () ")")))) (; ";")) (expression_statement "local_8c = &local_78;" (assignment_expression "local_8c = &local_78" (identifier "local_8c") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_94 = (uint)param_9;" (assignment_expression "local_94 = (uint)param_9" (identifier "local_94") (= "=") (cast_expression "(uint)param_9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_9"))) (; ";")) (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" (identifier "puVar13") (= "=") (binary_expression "puVar14 + -0x1a58" (identifier "puVar14") (+ "+") (number_literal "-0x1a58"))) (; ";")) (expression_statement "local_90 = param_10;" (assignment_expression "local_90 = param_10" (identifier "local_90") (= "=") (identifier "param_10")) (; ";")) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" (identifier "puVar12") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_98 = (undefined4 *)(auStack_6e + 2);" (assignment_expression "local_98 = (undefined4 *)(auStack_6e + 2)" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)(auStack_6e + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_6e + 2)" (( "(") (binary_expression "auStack_6e + 2" (identifier "auStack_6e") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);" (assignment_expression "iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" (( "(") (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" (* "*") (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_cmds_process_resp_000548d0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);" (assignment_expression "iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_resid_0005493c)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_resid_0005493c" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_resid_0005493c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_resid_0005493c"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (param_8 != (int *)0x0) {\n    *param_8 = iVar9;\n  }" (if "if") (parenthesized_expression "(param_8 != (int *)0x0)" (( "(") (binary_expression "param_8 != (int *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_8 = iVar9;\n  }" ({ "{") (expression_statement "*param_8 = iVar9;" (assignment_expression "*param_8 = iVar9" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (if_statement "if (iVar8 == -1) {\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }\n  else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);\n    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);\n  }" ({ "{") (expression_statement "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);" (assignment_expression "uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" (identifier "uVar10") (= "=") (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_os_err_00054a9c"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);" (assignment_expression "puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar10)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_00054928" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_00054928"))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (; ";")) (} "}")) (else_clause "else if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" (else "else") (if_statement "if (iVar8 == -2) {\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }\n  else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar8 == -2)" (( "(") (binary_expression "iVar8 == -2" (identifier "iVar8") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n    puVar17 = local_78;\n    if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }\n  }" ({ "{") (expression_statement "puVar17 = local_78;" (assignment_expression "puVar17 = local_78" (identifier "puVar17") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (local_78 + -5 < (undefined4 *)0x2) {\n      puVar17 = (undefined4 *)0x0;\n    }" (if "if") (parenthesized_expression "(local_78 + -5 < (undefined4 *)0x2)" (( "(") (binary_expression "local_78 + -5 < (undefined4 *)0x2" (binary_expression "local_78 + -5" (identifier "local_78") (+ "+") (number_literal "-5")) (< "<") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      puVar17 = (undefined4 *)0x0;\n    }" ({ "{") (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    puVar17 = (undefined4 *)0x0;\n    if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar17 = (undefined4 *)0x0;" (assignment_expression "puVar17 = (undefined4 *)0x0" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar8 < 4) {\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" (if "if") (parenthesized_expression "(iVar8 < 4)" (( "(") (binary_expression "iVar8 < 4" (identifier "iVar8") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" ({ "{") (if_statement "if (param_10 == (undefined *)0x0) {\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }\n      else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" (if "if") (parenthesized_expression "(param_10 == (undefined *)0x0)" (( "(") (binary_expression "param_10 == (undefined *)0x0" (identifier "param_10") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840;\n        puVar17 = (undefined4 *)0x61;\n      }" ({ "{") (expression_statement "puVar13 = PTR_s_tatus_00054840;" (assignment_expression "puVar13 = PTR_s_tatus_00054840" (identifier "puVar13") (= "=") (identifier "PTR_s_tatus_00054840")) (; ";")) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x61" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x61"))) (; ";")) (} "}")) (else_clause "else {\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" (else "else") (compound_statement "{\n        puVar13 = PTR_s_tatus_00054840 + -0x1778;\n        iVar7 = iVar8;\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);\n        puVar17 = (undefined4 *)0x61;\n      }" ({ "{") (expression_statement "puVar13 = PTR_s_tatus_00054840 + -0x1778;" (assignment_expression "puVar13 = PTR_s_tatus_00054840 + -0x1778" (identifier "puVar13") (= "=") (binary_expression "PTR_s_tatus_00054840 + -0x1778" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1778"))) (; ";")) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" (identifier "iVar7") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x1a40)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x1a40" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a40")) () ")"))) (; ";")) (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x61" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x61"))) (; ";")) (} "}")))) (} "}"))) (} "}")))))) (if_statement "if (0 < iVar9) {\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" (if "if") (parenthesized_expression "(0 < iVar9)" (( "(") (binary_expression "0 < iVar9" (number_literal "0") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n    iVar7 = iVar9;\n    if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }\n  }" ({ "{") (expression_statement "iVar7 = iVar9;" (assignment_expression "iVar7 = iVar9" (identifier "iVar7") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if ((int)param_6 < iVar9) {\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }\n    else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" (if "if") (parenthesized_expression "((int)param_6 < iVar9)" (( "(") (binary_expression "(int)param_6 < iVar9" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n      puVar13 = puVar14 + -0x1a58;\n      puVar12 = param_6;\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);\n      if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }\n    }" ({ "{") (expression_statement "puVar13 = puVar14 + -0x1a58;" (assignment_expression "puVar13 = puVar14 + -0x1a58" (identifier "puVar13") (= "=") (binary_expression "puVar14 + -0x1a58" (identifier "puVar14") (+ "+") (number_literal "-0x1a58"))) (; ";")) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" (identifier "puVar12") (= "=") (identifier "param_6")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x1a24)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x1a24" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a24")) () ")"))) (; ";")) (if_statement "if (puVar17 == (undefined4 *)0x0) {\n        puVar17 = (undefined4 *)0x61;\n      }" (if "if") (parenthesized_expression "(puVar17 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar17 == (undefined4 *)0x0" (identifier "puVar17") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar17 = (undefined4 *)0x61;\n      }" ({ "{") (expression_statement "puVar17 = (undefined4 *)0x61;" (assignment_expression "puVar17 = (undefined4 *)0x61" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)0x61" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x61"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" (else "else") (compound_statement "{\n      puVar13 = (undefined *)0x0;\n      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));\n    }" ({ "{") (expression_statement "puVar13 = (undefined *)0x0;" (assignment_expression "puVar13 = (undefined *)0x0" (identifier "puVar13") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));" (call_expression "(*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9))" (parenthesized_expression "(*(code *)PTR_memset_00054968)" (( "(") (pointer_expression "*(code *)PTR_memset_00054968" (* "*") (cast_expression "(code *)PTR_memset_00054968" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00054968"))) () ")")) (argument_list "(param_5 + ((int)param_6 - iVar9))" (( "(") (binary_expression "param_5 + ((int)param_6 - iVar9)" (identifier "param_5") (+ "+") (parenthesized_expression "((int)param_6 - iVar9)" (( "(") (binary_expression "(int)param_6 - iVar9" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (- "-") (identifier "iVar9")) () ")"))) () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_2c == *(int *)puVar5) {\n    return puVar17;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar5)" (( "(") (binary_expression "local_2c == *(int *)puVar5" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) () ")")) (compound_statement "{\n    return puVar17;\n  }" ({ "{") (return_statement "return puVar17;" (return "return") (identifier "puVar17") (; ";")) (} "}"))) (expression_statement "pcVar24 = FUN_0001ffb8;" (assignment_expression "pcVar24 = FUN_0001ffb8" (identifier "pcVar24") (= "=") (identifier "FUN_0001ffb8")) (; ";")) (expression_statement "iVar11 = local_2c;" (assignment_expression "iVar11 = local_2c" (identifier "iVar11") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" (identifier "puVar23") (= "=") (identifier "PTR___stack_chk_fail_00054a1c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00054a1c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = local_90;" (assignment_expression "puVar6 = local_90" (identifier "puVar6") (= "=") (identifier "local_90")) (; ";")) (expression_statement "puVar18 = local_98;" (assignment_expression "puVar18 = local_98" (identifier "puVar18") (= "=") (identifier "local_98")) (; ";")) (expression_statement "puStack_130 = puVar23 + 0x3c858;" (assignment_expression "puStack_130 = puVar23 + 0x3c858" (identifier "puStack_130") (= "=") (binary_expression "puVar23 + 0x3c858" (identifier "puVar23") (+ "+") (number_literal "0x3c858"))) (; ";")) (expression_statement "puStack_c0 = puVar5;" (assignment_expression "puStack_c0 = puVar5" (identifier "puStack_c0") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "piVar20 = *(int **)(puVar23 + 0x34a94);" (assignment_expression "piVar20 = *(int **)(puVar23 + 0x34a94)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(puVar23 + 0x34a94)" (* "*") (cast_expression "(int **)(puVar23 + 0x34a94)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x34a94)" (( "(") (binary_expression "puVar23 + 0x34a94" (identifier "puVar23") (+ "+") (number_literal "0x34a94")) () ")"))))) (; ";")) (expression_statement "puStack_b0 = param_10;" (assignment_expression "puStack_b0 = param_10" (identifier "puStack_b0") (= "=") (identifier "param_10")) (; ";")) (expression_statement "puStack_b4 = puVar14;" (assignment_expression "puStack_b4 = puVar14" (identifier "puStack_b4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puStack_c8 = param_5;" (assignment_expression "puStack_c8 = param_5" (identifier "puStack_c8") (= "=") (identifier "param_5")) (; ";")) (expression_statement "piStack_b8 = param_8;" (assignment_expression "piStack_b8 = param_8" (identifier "piStack_b8") (= "=") (identifier "param_8")) (; ";")) (expression_statement "puStack_d0 = param_6;" (assignment_expression "puStack_d0 = param_6" (identifier "puStack_d0") (= "=") (identifier "param_6")) (; ";")) (expression_statement "uStack_11c = 0x3000000;" (assignment_expression "uStack_11c = 0x3000000" (identifier "uStack_11c") (= "=") (number_literal "0x3000000")) (; ";")) (expression_statement "sStack_118 = 0;" (assignment_expression "sStack_118 = 0" (identifier "sStack_118") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_d4 = *piVar20;" (assignment_expression "iStack_d4 = *piVar20" (identifier "iStack_d4") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (if_statement "if (iVar7 != 0) {\n    uStack_11c = 0x3010000;\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uStack_11c = 0x3010000;\n  }" ({ "{") (expression_statement "uStack_11c = 0x3010000;" (assignment_expression "uStack_11c = 0x3010000" (identifier "uStack_11c") (= "=") (number_literal "0x3010000")) (; ";")) (} "}"))) (expression_statement "puVar16 = puVar12;" (assignment_expression "puVar16 = puVar12" (identifier "puVar16") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puStack_cc = puVar17;" (assignment_expression "puStack_cc = puVar17" (identifier "puStack_cc") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "iStack_c4 = iVar9;" (assignment_expression "iStack_c4 = iVar9" (identifier "iStack_c4") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iStack_bc = iVar8;" (assignment_expression "iStack_bc = iVar8" (identifier "iStack_bc") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "pcStack_ac = pcVar24;" (assignment_expression "pcStack_ac = pcVar24" (identifier "pcStack_ac") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if ((int)local_98 < 0x100) {\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }\n  else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" (if "if") (parenthesized_expression "((int)local_98 < 0x100)" (( "(") (binary_expression "(int)local_98 < 0x100" (cast_expression "(int)local_98" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_98")) (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n    sStack_118 = (ushort)(byte)local_98 << 8;\n    if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }\n    iVar8 = *(int *)(puStack_130 + -0x7fd0);\n    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);\n    param_6 = (undefined4 *)(auStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);\n    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);\n    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);\n    ppuStack_134 = &puStack_120;\n    uStack_13c = local_94 & 0xff;\n    puVar14 = (undefined *)(iVar8 + -0x19d0);\n    puStack_138 = puVar6;\n    puVar16 = puVar18;\n    puStack_140 = param_6;\n    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);\n    uVar15 = (undefined1)uVar10;\n    if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }\n    puStack_124 = puStack_120;\n    (*pcVar24)(iVar11);\n    puStack_120 = puStack_124;\n  }" ({ "{") (expression_statement "sStack_118 = (ushort)(byte)local_98 << 8;" (assignment_expression "sStack_118 = (ushort)(byte)local_98 << 8" (identifier "sStack_118") (= "=") (binary_expression "(ushort)(byte)local_98 << 8" (cast_expression "(ushort)(byte)local_98" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (cast_expression "(byte)local_98" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_98"))) (<< "<<") (number_literal "8"))) (; ";")) (if_statement "if (local_90 == (undefined *)0x0) {\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }\n    else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" (if "if") (parenthesized_expression "(local_90 == (undefined *)0x0)" (( "(") (binary_expression "local_90 == (undefined *)0x0" (identifier "local_90") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar24 = *(code **)(puVar23 + 0x34978);\n      if (iVar11 == 0) goto LAB_000201d0;\nLAB_0002004c:\n      param_8 = (int *)0x1;\n    }" ({ "{") (expression_statement "pcVar24 = *(code **)(puVar23 + 0x34978);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x34978)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar23 + 0x34978)" (* "*") (cast_expression "(code **)(puVar23 + 0x34978)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x34978)" (( "(") (binary_expression "puVar23 + 0x34978" (identifier "puVar23") (+ "+") (number_literal "0x34978")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_000201d0;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000201d0;" (goto "goto") (statement_identifier "LAB_000201d0") (; ";"))) (labeled_statement "LAB_0002004c:\n      param_8 = (int *)0x1;" (statement_identifier "LAB_0002004c") (: ":") (expression_statement "param_8 = (int *)0x1;" (assignment_expression "param_8 = (int *)0x1" (identifier "param_8") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (} "}")) (else_clause "else {\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" (else "else") (compound_statement "{\n      (**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);\n      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;\n      puVar17 = &uStack_11c;\n      do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);\n      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n      if (iVar11 != 0) goto LAB_0002004c;\n      pcVar24 = *(code **)(puStack_130 + -0x7ee0);\nLAB_000201d0:\n      uVar15 = (undefined1)iVar7;\n      param_8 = (int *)0x0;\n      puVar14 = puVar6;\n      iVar11 = (*pcVar24)(puVar13,puVar6);\n      if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);" (call_expression "(**(code **)(puVar23 + 0x34934))\n                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x34934)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x34934)" (* "*") (cast_expression "(code **)(puVar23 + 0x34934)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x34934)" (( "(") (binary_expression "puVar23 + 0x34934" (identifier "puVar23") (+ "+") (number_literal "0x34934")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0)" (( "(") (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19c0" (pointer_expression "*(int *)(puVar23 + 0x34888)" (* "*") (cast_expression "(int *)(puVar23 + 0x34888)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x34888)" (( "(") (binary_expression "puVar23 + 0x34888" (identifier "puVar23") (+ "+") (number_literal "0x34888")) () ")")))) (+ "+") (number_literal "-0x19c0")) (, ",") (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19d0" (pointer_expression "*(int *)(puVar23 + 0x34888)" (* "*") (cast_expression "(int *)(puVar23 + 0x34888)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x34888)" (( "(") (binary_expression "puVar23 + 0x34888" (identifier "puVar23") (+ "+") (number_literal "0x34888")) () ")")))) (+ "+") (number_literal "-0x19d0")) () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (identifier "iVar8") (= "=") (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd4)" (( "(") (binary_expression "puStack_130 + -0x7fd4" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x1f1c"))) (; ";")) (expression_statement "puVar17 = &uStack_11c;" (assignment_expression "puVar17 = &uStack_11c" (identifier "puVar17") (= "=") (pointer_expression "&uStack_11c" (& "&") (identifier "uStack_11c"))) (; ";")) (do_statement "do {\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      } while (param_6 != (undefined4 *)auStack_116);" (do "do") (compound_statement "{\n        param_6 = (undefined4 *)((int)puVar17 + 1);\n        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);\n        puVar17 = param_6;\n      }" ({ "{") (expression_statement "param_6 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "param_6 = (undefined4 *)((int)puVar17 + 1)" (identifier "param_6") (= "=") (cast_expression "(undefined4 *)((int)puVar17 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + 1)" (( "(") (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(iVar8,*(undefined1 *)puVar17)" (( "(") (identifier "iVar8") (, ",") (pointer_expression "*(undefined1 *)puVar17" (* "*") (cast_expression "(undefined1 *)puVar17" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar17"))) () ")"))) (; ";")) (expression_statement "puVar17 = param_6;" (assignment_expression "puVar17 = param_6" (identifier "puVar17") (= "=") (identifier "param_6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_6 != (undefined4 *)auStack_116)" (( "(") (binary_expression "param_6 != (undefined4 *)auStack_116" (identifier "param_6") (!= "!=") (cast_expression "(undefined4 *)auStack_116" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_116"))) () ")")) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_0002004c;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002004c;" (goto "goto") (statement_identifier "LAB_0002004c") (; ";"))) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ee0);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ee0)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7ee0)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ee0)" (( "(") (binary_expression "puStack_130 + -0x7ee0" (identifier "puStack_130") (+ "+") (number_literal "-0x7ee0")) () ")"))))) (; ";")) (labeled_statement "LAB_000201d0:\n      uVar15 = (undefined1)iVar7;" (statement_identifier "LAB_000201d0") (: ":") (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" (identifier "uVar15") (= "=") (cast_expression "(undefined1)iVar7" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar7"))) (; ";"))) (expression_statement "param_8 = (int *)0x0;" (assignment_expression "param_8 = (int *)0x0" (identifier "param_8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar14 = puVar6;" (assignment_expression "puVar14 = puVar6" (identifier "puVar14") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "iVar11 = (*pcVar24)(puVar13,puVar6);" (assignment_expression "iVar11 = (*pcVar24)(puVar13,puVar6)" (identifier "iVar11") (= "=") (call_expression "(*pcVar24)(puVar13,puVar6)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(puVar13,puVar6)" (( "(") (identifier "puVar13") (, ",") (identifier "puVar6") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);\n        goto LAB_00020118;\n      }" ({ "{") (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_130 + -0x7ee8))(0xc)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ee8)" (( "(") (binary_expression "puStack_130 + -0x7ee8" (identifier "puStack_130") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (goto_statement "goto LAB_00020118;" (goto "goto") (statement_identifier "LAB_00020118") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar8 = *(int *)(puStack_130 + -0x7fd0);" (assignment_expression "iVar8 = *(int *)(puStack_130 + -0x7fd0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7fb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7fb0)" (( "(") (binary_expression "puStack_130 + -0x7fb0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fb0")) () ")"))))) () ")")) (argument_list "(iVar11,&uStack_11c,6)" (( "(") (identifier "iVar11") (, ",") (pointer_expression "&uStack_11c" (& "&") (identifier "uStack_11c")) (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "param_6 = (undefined4 *)(auStack_116 + 2);" (assignment_expression "param_6 = (undefined4 *)(auStack_116 + 2)" (identifier "param_6") (= "=") (cast_expression "(undefined4 *)(auStack_116 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_116 + 2)" (( "(") (binary_expression "auStack_116 + 2" (identifier "auStack_116") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f1c)" (( "(") (binary_expression "puStack_130 + -0x7f1c" (identifier "puStack_130") (+ "+") (number_literal "-0x7f1c")) () ")"))))) () ")")) (argument_list "(iVar11,param_6,0x40)" (( "(") (identifier "iVar11") (, ",") (identifier "param_6") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);" (call_expression "(**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d90))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7d90)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7d90)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7d90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7d90)" (( "(") (binary_expression "puStack_130 + -0x7d90" (identifier "puStack_130") (+ "+") (number_literal "-0x7d90")) () ")"))))) () ")")) (argument_list "(iVar11,puVar12,puVar18)" (( "(") (identifier "iVar11") (, ",") (identifier "puVar12") (, ",") (identifier "puVar18") () ")"))) (; ";")) (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7e8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7e8c)" (( "(") (binary_expression "puStack_130 + -0x7e8c" (identifier "puStack_130") (+ "+") (number_literal "-0x7e8c")) () ")"))))) () ")")) (argument_list "(iVar11,0xffffffff,0x3c,puVar6)" (( "(") (identifier "iVar11") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0x3c") (, ",") (identifier "puVar6") () ")")))) (; ";")) (expression_statement "ppuStack_134 = &puStack_120;" (assignment_expression "ppuStack_134 = &puStack_120" (identifier "ppuStack_134") (= "=") (pointer_expression "&puStack_120" (& "&") (identifier "puStack_120"))) (; ";")) (expression_statement "uStack_13c = local_94 & 0xff;" (assignment_expression "uStack_13c = local_94 & 0xff" (identifier "uStack_13c") (= "=") (binary_expression "local_94 & 0xff" (identifier "local_94") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" (identifier "puVar14") (= "=") (cast_expression "(undefined *)(iVar8 + -0x19d0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x19d0)" (( "(") (binary_expression "iVar8 + -0x19d0" (identifier "iVar8") (+ "+") (number_literal "-0x19d0")) () ")")))) (; ";")) (expression_statement "puStack_138 = puVar6;" (assignment_expression "puStack_138 = puVar6" (identifier "puStack_138") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar16 = puVar18;" (assignment_expression "puVar16 = puVar18" (identifier "puVar16") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puStack_140 = param_6;" (assignment_expression "puStack_140 = param_6" (identifier "puStack_140") (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);" (assignment_expression "iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f40)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f40)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f40)" (( "(") (binary_expression "puStack_130 + -0x7f40" (identifier "puStack_130") (+ "+") (number_literal "-0x7f40")) () ")"))))) () ")")) (argument_list "(iVar11,puVar14,uVar10,puVar18)" (( "(") (identifier "iVar11") (, ",") (identifier "puVar14") (, ",") (identifier "uVar10") (, ",") (identifier "puVar18") () ")")))) (; ";")) (expression_statement "uVar15 = (undefined1)uVar10;" (assignment_expression "uVar15 = (undefined1)uVar10" (identifier "uVar15") (= "=") (cast_expression "(undefined1)uVar10" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar10"))) (; ";")) (if_statement "if (iVar7 == -1) {\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }\n    else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);\n      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);\nLAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n    }" ({ "{") (expression_statement "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);" (assignment_expression "uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7d74)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7d74)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7d74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7d74)" (( "(") (binary_expression "puStack_130 + -0x7d74" (identifier "puStack_130") (+ "+") (number_literal "-0x7d74")) () ")"))))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";")) (expression_statement "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);" (assignment_expression "puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ee8)" (( "(") (binary_expression "puStack_130 + -0x7ee8" (identifier "puStack_130") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (; ";")) (labeled_statement "LAB_00020110:\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (statement_identifier "LAB_00020110") (: ":") (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ea4)" (( "(") (binary_expression "puStack_130 + -0x7ea4" (identifier "puStack_130") (+ "+") (number_literal "-0x7ea4")) () ")"))))) (; ";"))) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" (if "if") (parenthesized_expression "(param_8 != (int *)0x0)" (( "(") (binary_expression "param_8 != (int *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00020118;" (goto "goto") (statement_identifier "LAB_00020118") (; ";"))) (} "}")) (else_clause "else {\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" (else "else") (compound_statement "{\n      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);\n      if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }\n      if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }\n      if (param_8 != (int *)0x0) goto LAB_00020118;\n      pcVar24 = *(code **)(puStack_130 + -0x7ea4);\n    }" ({ "{") (expression_statement "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);" (assignment_expression "puVar18 = (undefined4 *)(uint)((int)puVar18 < 8)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)(uint)((int)puVar18 < 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)((int)puVar18 < 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar18 < 8)" (( "(") (binary_expression "(int)puVar18 < 8" (cast_expression "(int)puVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar18")) (< "<") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar7 != -2) {\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" (if "if") (parenthesized_expression "(iVar7 != -2)" (( "(") (binary_expression "iVar7 != -2" (identifier "iVar7") (!= "!=") (number_literal "-2")) () ")")) (compound_statement "{\n        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }\n        goto LAB_00020110;\n      }" ({ "{") (if_statement "if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }\n        else {\n          puStack_120 = (undefined4 *)0x0;\n        }" (if "if") (parenthesized_expression "((puVar18 == (undefined4 *)0x0) && (iVar7 < 8))" (( "(") (binary_expression "(puVar18 == (undefined4 *)0x0) && (iVar7 < 8)" (parenthesized_expression "(puVar18 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar18 == (undefined4 *)0x0" (identifier "puVar18") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 < 8)" (( "(") (binary_expression "iVar7 < 8" (identifier "iVar7") (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n          if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n        }" ({ "{") (if_statement "if (puVar6 == (undefined *)0x0) {\n            puStack_120 = (undefined4 *)0xffffffff;\n          }\n          else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" (if "if") (parenthesized_expression "(puVar6 == (undefined *)0x0)" (( "(") (binary_expression "puVar6 == (undefined *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" ({ "{") (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)0xffffffff" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" (else "else") (compound_statement "{\n            puVar14 = (undefined *)(iVar8 + -0x19d0);\n            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);\n            uVar15 = (undefined1)iVar7;\n            puStack_120 = (undefined4 *)0xffffffff;\n          }" ({ "{") (expression_statement "puVar14 = (undefined *)(iVar8 + -0x19d0);" (assignment_expression "puVar14 = (undefined *)(iVar8 + -0x19d0)" (identifier "puVar14") (= "=") (cast_expression "(undefined *)(iVar8 + -0x19d0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x19d0)" (( "(") (binary_expression "iVar8 + -0x19d0" (identifier "iVar8") (+ "+") (number_literal "-0x19d0")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x19b0" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x19b0")) (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" (identifier "uVar15") (= "=") (cast_expression "(undefined1)iVar7" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar7"))) (; ";")) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)0xffffffff" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          puStack_120 = (undefined4 *)0x0;\n        }" (else "else") (compound_statement "{\n          puStack_120 = (undefined4 *)0x0;\n        }" ({ "{") (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00020110;" (goto "goto") (statement_identifier "LAB_00020110") (; ";")) (} "}"))) (if_statement "if (puStack_120 + -5 < (undefined4 *)0x2) {\n        puStack_120 = (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(puStack_120 + -5 < (undefined4 *)0x2)" (( "(") (binary_expression "puStack_120 + -5 < (undefined4 *)0x2" (binary_expression "puStack_120 + -5" (identifier "puStack_120") (+ "+") (number_literal "-5")) (< "<") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        puStack_120 = (undefined4 *)0x0;\n      }" ({ "{") (expression_statement "puStack_120 = (undefined4 *)0x0;" (assignment_expression "puStack_120 = (undefined4 *)0x0" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if (param_8 != (int *)0x0) goto LAB_00020118;" (if "if") (parenthesized_expression "(param_8 != (int *)0x0)" (( "(") (binary_expression "param_8 != (int *)0x0" (identifier "param_8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00020118;" (goto "goto") (statement_identifier "LAB_00020118") (; ";"))) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7ea4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7ea4)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ea4)" (( "(") (binary_expression "puStack_130 + -0x7ea4" (identifier "puStack_130") (+ "+") (number_literal "-0x7ea4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puStack_124 = puStack_120;" (assignment_expression "puStack_124 = puStack_120" (identifier "puStack_124") (= "=") (identifier "puStack_120")) (; ";")) (expression_statement "(*pcVar24)(iVar11);" (call_expression "(*pcVar24)(iVar11)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "puStack_120 = puStack_124;" (assignment_expression "puStack_120 = puStack_124" (identifier "puStack_120") (= "=") (identifier "puStack_124")) (; ";")) (} "}")) (else_clause "else {\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" (else "else") (compound_statement "{\n    puVar14 = puVar13;\n    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);\n    uVar15 = (undefined1)iVar7;\n    puStack_120 = (undefined4 *)0xffffffff;\n  }" ({ "{") (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" (identifier "puVar14") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);" (call_expression "(**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0)" (parenthesized_expression "(**(code **)(puVar23 + 0x34934))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x34934)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x34934)" (* "*") (cast_expression "(code **)(puVar23 + 0x34934)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x34934)" (( "(") (binary_expression "puVar23 + 0x34934" (identifier "puVar23") (+ "+") (number_literal "0x34934")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar23 + 0x34888) + -0x19f0)" (( "(") (binary_expression "*(int *)(puVar23 + 0x34888) + -0x19f0" (pointer_expression "*(int *)(puVar23 + 0x34888)" (* "*") (cast_expression "(int *)(puVar23 + 0x34888)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x34888)" (( "(") (binary_expression "puVar23 + 0x34888" (identifier "puVar23") (+ "+") (number_literal "0x34888")) () ")")))) (+ "+") (number_literal "-0x19f0")) () ")"))) (; ";")) (expression_statement "uVar15 = (undefined1)iVar7;" (assignment_expression "uVar15 = (undefined1)iVar7" (identifier "uVar15") (= "=") (cast_expression "(undefined1)iVar7" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar7"))) (; ";")) (expression_statement "puStack_120 = (undefined4 *)0xffffffff;" (assignment_expression "puStack_120 = (undefined4 *)0xffffffff" (identifier "puStack_120") (= "=") (cast_expression "(undefined4 *)0xffffffff" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (labeled_statement "LAB_00020118:\n  if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" (statement_identifier "LAB_00020118") (: ":") (if_statement "if (iStack_d4 == *piVar20) {\n    return puStack_120;\n  }" (if "if") (parenthesized_expression "(iStack_d4 == *piVar20)" (( "(") (binary_expression "iStack_d4 == *piVar20" (identifier "iStack_d4") (== "==") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) () ")")) (compound_statement "{\n    return puStack_120;\n  }" ({ "{") (return_statement "return puStack_120;" (return "return") (identifier "puStack_120") (; ";")) (} "}")))) (expression_statement "pcVar24 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar24 = *(code **)(puStack_130 + -0x7df4)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7df4)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7df4)" (( "(") (binary_expression "puStack_130 + -0x7df4" (identifier "puStack_130") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "pcVar25 = FUN_00020298;" (assignment_expression "pcVar25 = FUN_00020298" (identifier "pcVar25") (= "=") (identifier "FUN_00020298")) (; ";")) (expression_statement "iVar7 = iStack_d4;" (assignment_expression "iVar7 = iStack_d4" (identifier "iVar7") (= "=") (identifier "iStack_d4")) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = puStack_140;" (assignment_expression "puVar17 = puStack_140" (identifier "puVar17") (= "=") (identifier "puStack_140")) (; ";")) (expression_statement "piStack_168 = piVar20;" (assignment_expression "piStack_168 = piVar20" (identifier "piStack_168") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "piVar20 = *(int **)(pcVar24 + 0x347b4);" (assignment_expression "piVar20 = *(int **)(pcVar24 + 0x347b4)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x347b4)" (* "*") (cast_expression "(int **)(pcVar24 + 0x347b4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x347b4)" (( "(") (binary_expression "pcVar24 + 0x347b4" (identifier "pcVar24") (+ "+") (number_literal "0x347b4")) () ")"))))) (; ";")) (expression_statement "iStack_174 = iVar11;" (assignment_expression "iStack_174 = iVar11" (identifier "iStack_174") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "uStack_1c8 = 0xa000;" (assignment_expression "uStack_1c8 = 0xa000" (identifier "uStack_1c8") (= "=") (number_literal "0xa000")) (; ";")) (expression_statement "puStack_158 = puVar13;" (assignment_expression "puStack_158 = puVar13" (identifier "puStack_158") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "iStack_17c = *piVar20;" (assignment_expression "iStack_17c = *piVar20" (identifier "iStack_17c") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "puStack_15c = puVar12;" (assignment_expression "puStack_15c = puVar12" (identifier "puStack_15c") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "iStack_164 = iVar8;" (assignment_expression "iStack_164 = iVar8" (identifier "iStack_164") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "puStack_178 = param_6;" (assignment_expression "puStack_178 = param_6" (identifier "puStack_178") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pcStack_154 = pcVar25;" (assignment_expression "pcStack_154 = pcVar25" (identifier "pcStack_154") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "piStack_160 = param_8;" (assignment_expression "piStack_160 = param_8" (identifier "piStack_160") (= "=") (identifier "param_8")) (; ";")) (expression_statement "puStack_16c = puVar6;" (assignment_expression "puStack_16c = puVar6" (identifier "puStack_16c") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puStack_170 = puVar18;" (assignment_expression "puStack_170 = puVar18" (identifier "puStack_170") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uStack_1c5 = 0;" (assignment_expression "uStack_1c5 = 0" (identifier "uStack_1c5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_1be = 0;" (assignment_expression "uStack_1be = 0" (identifier "uStack_1be") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_1c6 = uVar15;" (assignment_expression "uStack_1c6 = uVar15" (identifier "uStack_1c6") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" (identifier "uStack_1c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_1cc = puStack_140;" (assignment_expression "puStack_1cc = puStack_140" (identifier "puStack_1cc") (= "=") (identifier "puStack_140")) (; ";")) (expression_statement "uVar2 = (uint)auStack_1c2 & 3;" (assignment_expression "uVar2 = (uint)auStack_1c2 & 3" (identifier "uVar2") (= "=") (binary_expression "(uint)auStack_1c2 & 3" (cast_expression "(uint)auStack_1c2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "auStack_1c2")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar3 = (uint *)(auStack_1c2 + -uVar2);" (assignment_expression "puVar3 = (uint *)(auStack_1c2 + -uVar2)" (identifier "puVar3") (= "=") (cast_expression "(uint *)(auStack_1c2 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_1c2 + -uVar2)" (( "(") (binary_expression "auStack_1c2 + -uVar2" (identifier "auStack_1c2") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (; ";")) (expression_statement "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;" (assignment_expression "*puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8" (binary_expression "*puVar3 & -1 << (4 - uVar2) * 8" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (& "&") (binary_expression "-1 << (4 - uVar2) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" (( "(") (binary_expression "4 - uVar2" (number_literal "4") (- "-") (identifier "uVar2")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "(uint)puStack_140 >> uVar2 * 8" (cast_expression "(uint)puStack_140" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_140")) (>> ">>") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar1 = auStack_1c2 + 3;" (assignment_expression "puVar1 = auStack_1c2 + 3" (identifier "puVar1") (= "=") (binary_expression "auStack_1c2 + 3" (identifier "auStack_1c2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar2 = (uint)puVar1 & 3;" (assignment_expression "uVar2 = (uint)puVar1 & 3" (identifier "uVar2") (= "=") (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8\n  ;" (assignment_expression "*(uint *)(puVar1 + -uVar2) =\n       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar2)" (( "(") (binary_expression "puVar1 + -uVar2" (identifier "puVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8" (binary_expression "*(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar2)" (( "(") (binary_expression "puVar1 + -uVar2" (identifier "puVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" (( "(") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "(int)puVar17 << (3 - uVar2) * 8" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (<< "<<") (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" (( "(") (binary_expression "3 - uVar2" (number_literal "3") (- "-") (identifier "uVar2")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x345a8);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x345a8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar24 + 0x345a8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x345a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x345a8)" (( "(") (binary_expression "pcVar24 + 0x345a8" (identifier "pcVar24") (+ "+") (number_literal "0x345a8")) () ")"))))) (; ";")) (if_statement "if (puStack_138 == (undefined *)0x0) {\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }\n  else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" (if "if") (parenthesized_expression "(puStack_138 == (undefined *)0x0)" (( "(") (binary_expression "puStack_138 == (undefined *)0x0" (identifier "puStack_138") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\n    if (iVar7 == 0) goto LAB_00020494;\nLAB_00020334:\n    bVar4 = true;\n  }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x347bc)" (* "*") (cast_expression "(code **)(pcVar24 + 0x347bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x347bc)" (( "(") (binary_expression "pcVar24 + 0x347bc" (identifier "pcVar24") (+ "+") (number_literal "0x347bc")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00020494;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020494;" (goto "goto") (statement_identifier "LAB_00020494") (; ";"))) (labeled_statement "LAB_00020334:\n    bVar4 = true;" (statement_identifier "LAB_00020334") (: ":") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";"))) (} "}")) (else_clause "else {\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);\n    iVar9 = *(int *)(pcVar24 + 0x345a4);\n    puVar21 = &uStack_1c8;\n    do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);\n    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);\n    if (iVar7 != 0) goto LAB_00020334;\n    pcVar25 = *(code **)(pcVar24 + 0x347bc);\nLAB_00020494:\n    iVar7 = (*pcVar25)();\n    if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }\n    bVar4 = false;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34654)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34654)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34654)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34654)" (( "(") (binary_expression "pcVar24 + 0x34654" (identifier "pcVar24") (+ "+") (number_literal "0x34654")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1a50" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x345a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x345a8)" (( "(") (binary_expression "pcVar24 + 0x345a8" (identifier "pcVar24") (+ "+") (number_literal "0x345a8")) () ")")))) (+ "+") (number_literal "-0x1a50")) (, ",") (binary_expression "iVar8 + -0x1980" (identifier "iVar8") (+ "+") (number_literal "-0x1980")) () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar24 + 0x345a4);" (assignment_expression "iVar9 = *(int *)(pcVar24 + 0x345a4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar24 + 0x345a4)" (* "*") (cast_expression "(int *)(pcVar24 + 0x345a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x345a4)" (( "(") (binary_expression "pcVar24 + 0x345a4" (identifier "pcVar24") (+ "+") (number_literal "0x345a4")) () ")"))))) (; ";")) (expression_statement "puVar21 = &uStack_1c8;" (assignment_expression "puVar21 = &uStack_1c8" (identifier "puVar21") (= "=") (pointer_expression "&uStack_1c8" (& "&") (identifier "uStack_1c8"))) (; ";")) (do_statement "do {\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    } while (auStack_1bc != puVar22);" (do "do") (compound_statement "{\n      puVar22 = (undefined2 *)((int)puVar21 + 1);\n      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);\n      puVar21 = puVar22;\n    }" ({ "{") (expression_statement "puVar22 = (undefined2 *)((int)puVar21 + 1);" (assignment_expression "puVar22 = (undefined2 *)((int)puVar21 + 1)" (identifier "puVar22") (= "=") (cast_expression "(undefined2 *)((int)puVar21 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar21 + 1)" (( "(") (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);" (call_expression "(**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34654)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34654)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34654)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34654)" (( "(") (binary_expression "pcVar24 + 0x34654" (identifier "pcVar24") (+ "+") (number_literal "0x34654")) () ")"))))) () ")")) (argument_list "(iVar9 + 0x1f1c,*(undefined1 *)puVar21)" (( "(") (binary_expression "iVar9 + 0x1f1c" (identifier "iVar9") (+ "+") (number_literal "0x1f1c")) (, ",") (pointer_expression "*(undefined1 *)puVar21" (* "*") (cast_expression "(undefined1 *)puVar21" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar21"))) () ")"))) (; ";")) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" (identifier "puVar21") (= "=") (identifier "puVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(auStack_1bc != puVar22)" (( "(") (binary_expression "auStack_1bc != puVar22" (identifier "auStack_1bc") (!= "!=") (identifier "puVar22")) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34654)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34654)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34654)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34654)" (( "(") (binary_expression "pcVar24 + 0x34654" (identifier "pcVar24") (+ "+") (number_literal "0x34654")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x990)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x990" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x345a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x345a8)" (( "(") (binary_expression "pcVar24 + 0x345a8" (identifier "pcVar24") (+ "+") (number_literal "0x345a8")) () ")")))) (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00020334;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00020334;" (goto "goto") (statement_identifier "LAB_00020334") (; ";"))) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x347bc);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x347bc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x347bc)" (* "*") (cast_expression "(code **)(pcVar24 + 0x347bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x347bc)" (( "(") (binary_expression "pcVar24 + 0x347bc" (identifier "pcVar24") (+ "+") (number_literal "0x347bc")) () ")"))))) (; ";")) (labeled_statement "LAB_00020494:\n    iVar7 = (*pcVar25)();" (statement_identifier "LAB_00020494") (: ":") (expression_statement "iVar7 = (*pcVar25)();" (assignment_expression "iVar7 = (*pcVar25)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar7 == 0) {\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);\n      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);\n      goto LAB_000203f8;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);" (call_expression "(**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34654))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34654)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34654)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34654)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34654)" (( "(") (binary_expression "pcVar24 + 0x34654" (identifier "pcVar24") (+ "+") (number_literal "0x34654")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x345a8) + -0x1974" (pointer_expression "*(int *)(pcVar24 + 0x345a8)" (* "*") (cast_expression "(int *)(pcVar24 + 0x345a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x345a8)" (( "(") (binary_expression "pcVar24 + 0x345a8" (identifier "pcVar24") (+ "+") (number_literal "0x345a8")) () ")")))) (+ "+") (number_literal "-0x1974")) (, ",") (binary_expression "iVar8 + -0x1980" (identifier "iVar8") (+ "+") (number_literal "-0x1980")) () ")"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + 0x34690))(0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34690)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34690)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34690)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34690)" (( "(") (binary_expression "pcVar24 + 0x34690" (identifier "pcVar24") (+ "+") (number_literal "0x34690")) () ")"))))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (goto_statement "goto LAB_000203f8;" (goto "goto") (statement_identifier "LAB_000203f8") (; ";")) (} "}"))) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);" (call_expression "(**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x345c8))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x345c8)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x345c8)" (* "*") (cast_expression "(code **)(pcVar24 + 0x345c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x345c8)" (( "(") (binary_expression "pcVar24 + 0x345c8" (identifier "pcVar24") (+ "+") (number_literal "0x345c8")) () ")"))))) () ")")) (argument_list "(iVar7,&uStack_1c8,0xc)" (( "(") (identifier "iVar7") (, ",") (pointer_expression "&uStack_1c8" (& "&") (identifier "uStack_1c8")) (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);" (call_expression "(**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40)" (parenthesized_expression "(**(code **)(pcVar24 + 0x3465c))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x3465c)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x3465c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x3465c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x3465c)" (( "(") (binary_expression "pcVar24 + 0x3465c" (identifier "pcVar24") (+ "+") (number_literal "0x3465c")) () ")"))))) () ")")) (argument_list "(iVar7,auStack_1bc,0x40)" (( "(") (identifier "iVar7") (, ",") (identifier "auStack_1bc") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);" (call_expression "(**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17)" (parenthesized_expression "(**(code **)(pcVar24 + 0x347e8))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x347e8)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x347e8)" (* "*") (cast_expression "(code **)(pcVar24 + 0x347e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x347e8)" (( "(") (binary_expression "pcVar24 + 0x347e8" (identifier "pcVar24") (+ "+") (number_literal "0x347e8")) () ")"))))) () ")")) (argument_list "(iVar7,puVar16,puVar17)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar16") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138)" (parenthesized_expression "(**(code **)(pcVar24 + 0x346ec))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x346ec)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x346ec)" (* "*") (cast_expression "(code **)(pcVar24 + 0x346ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x346ec)" (( "(") (binary_expression "pcVar24 + 0x346ec" (identifier "pcVar24") (+ "+") (number_literal "0x346ec")) () ")"))))) () ")")) (argument_list "(iVar7,puVar14,0x3c,puStack_138)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar14") (, ",") (number_literal "0x3c") (, ",") (identifier "puStack_138") () ")")))) (; ";")) (expression_statement "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc);" (assignment_expression "iVar8 = (**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(pcVar24 + 0x34638))\n                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34638))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34638)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34638)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34638)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34638)" (( "(") (binary_expression "pcVar24 + 0x34638" (identifier "pcVar24") (+ "+") (number_literal "0x34638")) () ")"))))) () ")")) (argument_list "(iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,\n                     &puStack_1cc)" (( "(") (identifier "iVar7") (, ",") (binary_expression "iVar8 + -0x1980" (identifier "iVar8") (+ "+") (number_literal "-0x1980")) (, ",") (identifier "uVar10") (, ",") (identifier "puVar17") (, ",") (identifier "auStack_1bc") (, ",") (binary_expression "uStack_13c & 0xff" (identifier "uStack_13c") (& "&") (number_literal "0xff")) (, ",") (identifier "puStack_138") (, ",") (pointer_expression "&puStack_1cc" (& "&") (identifier "puStack_1cc")) () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }\n  else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);\n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);\nLAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n    if (bVar4) goto LAB_000203f8;\n  }" ({ "{") (expression_statement "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);" (assignment_expression "uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(pcVar24 + 0x34804))(iVar7)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34804))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34804)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34804)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34804)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34804)" (( "(") (binary_expression "pcVar24 + 0x34804" (identifier "pcVar24") (+ "+") (number_literal "0x34804")) () ")"))))) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + 0x34690))(uVar10)" (parenthesized_expression "(**(code **)(pcVar24 + 0x34690))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x34690)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x34690)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34690)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34690)" (( "(") (binary_expression "pcVar24 + 0x34690" (identifier "pcVar24") (+ "+") (number_literal "0x34690")) () ")"))))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))))) (; ";")) (labeled_statement "LAB_000203f0:\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);" (statement_identifier "LAB_000203f0") (: ":") (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x346d4)" (* "*") (cast_expression "(code **)(pcVar24 + 0x346d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x346d4)" (( "(") (binary_expression "pcVar24 + 0x346d4" (identifier "pcVar24") (+ "+") (number_literal "0x346d4")) () ")"))))) (; ";"))) (if_statement "if (bVar4) goto LAB_000203f8;" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (goto_statement "goto LAB_000203f8;" (goto "goto") (statement_identifier "LAB_000203f8") (; ";"))) (} "}")) (else_clause "else {\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" (else "else") (compound_statement "{\n    if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }\n    puVar12 = puStack_1cc;\n    if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }\n    if (bVar4) goto LAB_000203f8;\n    pcVar25 = *(code **)(pcVar24 + 0x346d4);\n  }" ({ "{") (if_statement "if (iVar8 != -2) {\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" (if "if") (parenthesized_expression "(iVar8 != -2)" (( "(") (binary_expression "iVar8 != -2" (identifier "iVar8") (!= "!=") (number_literal "-2")) () ")")) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n      goto LAB_000203f0;\n    }" ({ "{") (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000203f0;" (goto "goto") (statement_identifier "LAB_000203f0") (; ";")) (} "}"))) (expression_statement "puVar12 = puStack_1cc;" (assignment_expression "puVar12 = puStack_1cc" (identifier "puVar12") (= "=") (identifier "puStack_1cc")) (; ";")) (if_statement "if (puStack_1cc + -5 < (undefined4 *)0x2) {\n      puVar12 = (undefined4 *)0x0;\n    }" (if "if") (parenthesized_expression "(puStack_1cc + -5 < (undefined4 *)0x2)" (( "(") (binary_expression "puStack_1cc + -5 < (undefined4 *)0x2" (binary_expression "puStack_1cc + -5" (identifier "puStack_1cc") (+ "+") (number_literal "-5")) (< "<") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      puVar12 = (undefined4 *)0x0;\n    }" ({ "{") (expression_statement "puVar12 = (undefined4 *)0x0;" (assignment_expression "puVar12 = (undefined4 *)0x0" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if (bVar4) goto LAB_000203f8;" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (goto_statement "goto LAB_000203f8;" (goto "goto") (statement_identifier "LAB_000203f8") (; ";"))) (expression_statement "pcVar25 = *(code **)(pcVar24 + 0x346d4);" (assignment_expression "pcVar25 = *(code **)(pcVar24 + 0x346d4)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x346d4)" (* "*") (cast_expression "(code **)(pcVar24 + 0x346d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x346d4)" (( "(") (binary_expression "pcVar24 + 0x346d4" (identifier "pcVar24") (+ "+") (number_literal "0x346d4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar25)(iVar7);" (call_expression "(*pcVar25)(iVar7)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (labeled_statement "LAB_000203f8:\n  if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" (statement_identifier "LAB_000203f8") (: ":") (if_statement "if (iStack_17c != *piVar20) {\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" (if "if") (parenthesized_expression "(iStack_17c != *piVar20)" (( "(") (binary_expression "iStack_17c != *piVar20" (identifier "iStack_17c") (!= "!=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) () ")")) (compound_statement "{\n    pcVar24 = *(code **)(pcVar24 + 0x34784);\n    (*pcVar24)();\n                    \n                    \n    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();\n    return puVar12;\n  }" ({ "{") (expression_statement "pcVar24 = *(code **)(pcVar24 + 0x34784);" (assignment_expression "pcVar24 = *(code **)(pcVar24 + 0x34784)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x34784)" (* "*") (cast_expression "(code **)(pcVar24 + 0x34784)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x34784)" (( "(") (binary_expression "pcVar24 + 0x34784" (identifier "pcVar24") (+ "+") (number_literal "0x34784")) () ")"))))) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();" (assignment_expression "puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar24 + 0x343d8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + 0x343d8))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x343d8))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x343d8)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x343d8)" (* "*") (cast_expression "(code **)(pcVar24 + 0x343d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x343d8)" (( "(") (binary_expression "pcVar24 + 0x343d8" (identifier "pcVar24") (+ "+") (number_literal "0x343d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}")))) (return_statement "return puVar12;" (return "return") (identifier "puVar12") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (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: (array_declarator declarator: (identifier) size: (number_literal))) (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: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (sized_type_specifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (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) (number_literal) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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))))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (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: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (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)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (goto_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))))))) (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) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 (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 (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (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 (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))))) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (true))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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)) (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: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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: (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)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (false)))))) (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) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (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 (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 (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (identifier)) 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) 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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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))))) (return_statement (identifier))))) (return_statement (identifier)))))

undefined4 *
MASKED(undefined4 param_1,int param_2,int param_3,undefined1 param_4,undefined1 *param_5,
            undefined4 *param_6,int param_7,int *param_8,byte param_9,undefined *param_10)

{
  undefined1 *puVar1;
  uint uVar2;
  uint *puVar3;
  bool bVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  int iVar11;
  undefined4 *puVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined1 uVar15;
  undefined4 *puVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  undefined3 *puVar19;
  int *piVar20;
  undefined2 *puVar21;
  undefined2 *puVar22;
  undefined *puVar23;
  code *pcVar24;
  code *pcVar25;
  undefined4 *puStack_1cc;
  undefined2 uStack_1c8;
  undefined1 uStack_1c6;
  undefined1 uStack_1c5;
  undefined2 uStack_1c4;
  undefined1 auStack_1c2 [4];
  undefined2 uStack_1be;
  undefined2 auStack_1bc [32];
  int iStack_17c;
  undefined4 *puStack_178;
  int iStack_174;
  undefined4 *puStack_170;
  undefined *puStack_16c;
  int *piStack_168;
  int iStack_164;
  int *piStack_160;
  undefined4 *puStack_15c;
  undefined *puStack_158;
  code *pcStack_154;
  undefined4 *puStack_140;
  uint uStack_13c;
  undefined *puStack_138;
  undefined4 **ppuStack_134;
  undefined *puStack_130;
  undefined4 *puStack_124;
  undefined4 *puStack_120;
  undefined4 uStack_11c;
  short sStack_118;
  undefined1 auStack_116 [66];
  int iStack_d4;
  undefined4 *puStack_d0;
  undefined4 *puStack_cc;
  undefined1 *puStack_c8;
  int iStack_c4;
  undefined *puStack_c0;
  int iStack_bc;
  int *piStack_b8;
  undefined *puStack_b4;
  undefined *puStack_b0;
  code *pcStack_ac;
  undefined4 *local_98;
  uint local_94;
  undefined *local_90;
  undefined4 **local_8c;
  undefined4 *local_78;
  undefined3 local_74;
  undefined1 uStack_71;
  short local_70;
  undefined1 auStack_6e [66];
  int local_2c;
  
  puVar5 = PTR___stack_chk_guard_00054a4c;
  puVar14 = PTR_s_tatus_00054840;
  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;
  local_74._0_2_ = 0x1200;
  if (param_2 != 0) {
    local_74._0_2_ = 0x1202;
  }
  if (param_3 != 0) {
    local_74._0_2_ = local_74._0_2_ | 1;
  }
  local_78 = (undefined4 *)CONCAT22((short)param_6,local_78._2_2_);
  _local_74 = CONCAT31(CONCAT21(local_74._0_2_,param_4),(char)((uint)param_6 >> 8));
  local_70 = (ushort)(byte)param_6 << 8;
  if (param_10 != (undefined *)0x0) {
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x1a58);
    puVar13 = PTR_LAB_0005483c + 0x1f1c;
    puVar19 = &local_74;
    do {
      uVar15 = *(undefined1 *)puVar19;
      puVar19 = (undefined3 *)((int)puVar19 + 1);
      (*(code *)PTR_pr2ws_000548ec)(puVar13,uVar15);
    } while (puVar19 != (undefined3 *)auStack_6e);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
  }
  if (((param_5 != (undefined1 *)0x0) && (0 < (int)param_6)) && (*param_5 = 0x7f, 4 < (int)param_6))
  {
    param_5[4] = 0;
  }
  if (param_7 < 1) {
    param_7 = 0x3c;
  }
  (*(code *)PTR_set_scsi_pt_cdb_00054860)(param_1,&local_74,6);
  (*(code *)PTR_set_scsi_pt_sense_000548f4)(param_1,auStack_6e + 2,0x40);
  (*(code *)PTR_set_scsi_pt_data_in_00054a80)(param_1,param_5,param_6);
  iVar7 = (*(code *)PTR_do_scsi_pt_00054984)(param_1,0xffffffff,param_7,param_10);
  local_8c = &local_78;
  local_94 = (uint)param_9;
  puVar13 = puVar14 + -0x1a58;
  local_90 = param_10;
  puVar12 = param_6;
  local_98 = (undefined4 *)(auStack_6e + 2);
  iVar8 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(param_1);
  iVar9 = (*(code *)PTR_get_scsi_pt_resid_0005493c)(param_1);
  if (param_8 != (int *)0x0) {
    *param_8 = iVar9;
  }
  if (iVar8 == -1) {
    uVar10 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(param_1);
    puVar17 = (undefined4 *)(*(code *)PTR_sg_convert_errno_00054928)(uVar10);
  }
  else if (iVar8 == -2) {
    puVar17 = local_78;
    if (local_78 + -5 < (undefined4 *)0x2) {
      puVar17 = (undefined4 *)0x0;
    }
  }
  else {
    puVar17 = (undefined4 *)0x0;
    if (iVar8 < 4) {
      if (param_10 == (undefined *)0x0) {
        puVar13 = PTR_s_tatus_00054840;
        puVar17 = (undefined4 *)0x61;
      }
      else {
        puVar13 = PTR_s_tatus_00054840 + -0x1778;
        iVar7 = iVar8;
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a40);
        puVar17 = (undefined4 *)0x61;
      }
    }
  }
  if (0 < iVar9) {
    iVar7 = iVar9;
    if ((int)param_6 < iVar9) {
      puVar13 = puVar14 + -0x1a58;
      puVar12 = param_6;
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a24);
      if (puVar17 == (undefined4 *)0x0) {
        puVar17 = (undefined4 *)0x61;
      }
    }
    else {
      puVar13 = (undefined *)0x0;
      (*(code *)PTR_memset_00054968)(param_5 + ((int)param_6 - iVar9));
    }
  }
  if (local_2c == *(int *)puVar5) {
    return puVar17;
  }
  pcVar24 = FUN_0001ffb8;
  iVar11 = local_2c;
  puVar23 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  puVar6 = local_90;
  puVar18 = local_98;
  puStack_130 = puVar23 + 0x3c858;
  puStack_c0 = puVar5;
  piVar20 = *(int **)(puVar23 + 0x34a94);
  puStack_b0 = param_10;
  puStack_b4 = puVar14;
  puStack_c8 = param_5;
  piStack_b8 = param_8;
  puStack_d0 = param_6;
  uStack_11c = 0x3000000;
  sStack_118 = 0;
  iStack_d4 = *piVar20;
  if (iVar7 != 0) {
    uStack_11c = 0x3010000;
  }
  puVar16 = puVar12;
  puStack_cc = puVar17;
  iStack_c4 = iVar9;
  iStack_bc = iVar8;
  pcStack_ac = pcVar24;
  if ((int)local_98 < 0x100) {
    sStack_118 = (ushort)(byte)local_98 << 8;
    if (local_90 == (undefined *)0x0) {
      pcVar24 = *(code **)(puVar23 + 0x34978);
      if (iVar11 == 0) goto LAB_000201d0;
LAB_0002004c:
      param_8 = (int *)0x1;
    }
    else {
      (**(code **)(puVar23 + 0x34934))
                (*(int *)(puVar23 + 0x34888) + -0x19c0,*(int *)(puVar23 + 0x34888) + -0x19d0);
      iVar8 = *(int *)(puStack_130 + -0x7fd4) + 0x1f1c;
      puVar17 = &uStack_11c;
      do {
        param_6 = (undefined4 *)((int)puVar17 + 1);
        (**(code **)(puStack_130 + -0x7f24))(iVar8,*(undefined1 *)puVar17);
        puVar17 = param_6;
      } while (param_6 != (undefined4 *)auStack_116);
      (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
      if (iVar11 != 0) goto LAB_0002004c;
      pcVar24 = *(code **)(puStack_130 + -0x7ee0);
LAB_000201d0:
      uVar15 = (undefined1)iVar7;
      param_8 = (int *)0x0;
      puVar14 = puVar6;
      iVar11 = (*pcVar24)(puVar13,puVar6);
      if (iVar11 == 0) {
        puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(0xc);
        goto LAB_00020118;
      }
    }
    iVar8 = *(int *)(puStack_130 + -0x7fd0);
    (**(code **)(puStack_130 + -0x7fb0))(iVar11,&uStack_11c,6);
    param_6 = (undefined4 *)(auStack_116 + 2);
    (**(code **)(puStack_130 + -0x7f1c))(iVar11,param_6,0x40);
    (**(code **)(puStack_130 + -0x7d90))(iVar11,puVar12,puVar18);
    uVar10 = (**(code **)(puStack_130 + -0x7e8c))(iVar11,0xffffffff,0x3c,puVar6);
    ppuStack_134 = &puStack_120;
    uStack_13c = local_94 & 0xff;
    puVar14 = (undefined *)(iVar8 + -0x19d0);
    puStack_138 = puVar6;
    puVar16 = puVar18;
    puStack_140 = param_6;
    iVar7 = (**(code **)(puStack_130 + -0x7f40))(iVar11,puVar14,uVar10,puVar18);
    uVar15 = (undefined1)uVar10;
    if (iVar7 == -1) {
      uVar10 = (**(code **)(puStack_130 + -0x7d74))(iVar11);
      puStack_120 = (undefined4 *)(**(code **)(puStack_130 + -0x7ee8))(uVar10);
LAB_00020110:
      pcVar24 = *(code **)(puStack_130 + -0x7ea4);
      if (param_8 != (int *)0x0) goto LAB_00020118;
    }
    else {
      puVar18 = (undefined4 *)(uint)((int)puVar18 < 8);
      if (iVar7 != -2) {
        if ((puVar18 == (undefined4 *)0x0) && (iVar7 < 8)) {
          if (puVar6 == (undefined *)0x0) {
            puStack_120 = (undefined4 *)0xffffffff;
          }
          else {
            puVar14 = (undefined *)(iVar8 + -0x19d0);
            (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x19b0,puVar14);
            uVar15 = (undefined1)iVar7;
            puStack_120 = (undefined4 *)0xffffffff;
          }
        }
        else {
          puStack_120 = (undefined4 *)0x0;
        }
        goto LAB_00020110;
      }
      if (puStack_120 + -5 < (undefined4 *)0x2) {
        puStack_120 = (undefined4 *)0x0;
      }
      if (param_8 != (int *)0x0) goto LAB_00020118;
      pcVar24 = *(code **)(puStack_130 + -0x7ea4);
    }
    puStack_124 = puStack_120;
    (*pcVar24)(iVar11);
    puStack_120 = puStack_124;
  }
  else {
    puVar14 = puVar13;
    (**(code **)(puVar23 + 0x34934))(*(int *)(puVar23 + 0x34888) + -0x19f0);
    uVar15 = (undefined1)iVar7;
    puStack_120 = (undefined4 *)0xffffffff;
  }
LAB_00020118:
  if (iStack_d4 == *piVar20) {
    return puStack_120;
  }
  pcVar24 = *(code **)(puStack_130 + -0x7df4);
  pcVar25 = FUN_00020298;
  iVar7 = iStack_d4;
  (*pcVar24)();
  puVar17 = puStack_140;
  piStack_168 = piVar20;
  piVar20 = *(int **)(pcVar24 + 0x347b4);
  iStack_174 = iVar11;
  uStack_1c8 = 0xa000;
  puStack_158 = puVar13;
  iStack_17c = *piVar20;
  puStack_15c = puVar12;
  iStack_164 = iVar8;
  puStack_178 = param_6;
  pcStack_154 = pcVar25;
  piStack_160 = param_8;
  puStack_16c = puVar6;
  puStack_170 = puVar18;
  uStack_1c5 = 0;
  uStack_1be = 0;
  uStack_1c6 = uVar15;
  uStack_1c4 = 0;
  puStack_1cc = puStack_140;
  uVar2 = (uint)auStack_1c2 & 3;
  puVar3 = (uint *)(auStack_1c2 + -uVar2);
  *puVar3 = *puVar3 & -1 << (4 - uVar2) * 8 | (uint)puStack_140 >> uVar2 * 8;
  puVar1 = auStack_1c2 + 3;
  uVar2 = (uint)puVar1 & 3;
  *(uint *)(puVar1 + -uVar2) =
       *(uint *)(puVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 | (int)puVar17 << (3 - uVar2) * 8
  ;
  iVar8 = *(int *)(pcVar24 + 0x345a8);
  if (puStack_138 == (undefined *)0x0) {
    pcVar25 = *(code **)(pcVar24 + 0x347bc);
    if (iVar7 == 0) goto LAB_00020494;
LAB_00020334:
    bVar4 = true;
  }
  else {
    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1a50,iVar8 + -0x1980);
    iVar9 = *(int *)(pcVar24 + 0x345a4);
    puVar21 = &uStack_1c8;
    do {
      puVar22 = (undefined2 *)((int)puVar21 + 1);
      (**(code **)(pcVar24 + 0x34654))(iVar9 + 0x1f1c,*(undefined1 *)puVar21);
      puVar21 = puVar22;
    } while (auStack_1bc != puVar22);
    (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x990);
    if (iVar7 != 0) goto LAB_00020334;
    pcVar25 = *(code **)(pcVar24 + 0x347bc);
LAB_00020494:
    iVar7 = (*pcVar25)();
    if (iVar7 == 0) {
      (**(code **)(pcVar24 + 0x34654))(*(int *)(pcVar24 + 0x345a8) + -0x1974,iVar8 + -0x1980);
      puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(0xc);
      goto LAB_000203f8;
    }
    bVar4 = false;
  }
  (**(code **)(pcVar24 + 0x345c8))(iVar7,&uStack_1c8,0xc);
  (**(code **)(pcVar24 + 0x3465c))(iVar7,auStack_1bc,0x40);
  (**(code **)(pcVar24 + 0x347e8))(iVar7,puVar16,puVar17);
  uVar10 = (**(code **)(pcVar24 + 0x346ec))(iVar7,puVar14,0x3c,puStack_138);
  iVar8 = (**(code **)(pcVar24 + 0x34638))
                    (iVar7,iVar8 + -0x1980,uVar10,puVar17,auStack_1bc,uStack_13c & 0xff,puStack_138,
                     &puStack_1cc);
  if (iVar8 == -1) {
    uVar10 = (**(code **)(pcVar24 + 0x34804))(iVar7);
    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x34690))(uVar10);
LAB_000203f0:
    pcVar25 = *(code **)(pcVar24 + 0x346d4);
    if (bVar4) goto LAB_000203f8;
  }
  else {
    if (iVar8 != -2) {
      puVar12 = (undefined4 *)0x0;
      goto LAB_000203f0;
    }
    puVar12 = puStack_1cc;
    if (puStack_1cc + -5 < (undefined4 *)0x2) {
      puVar12 = (undefined4 *)0x0;
    }
    if (bVar4) goto LAB_000203f8;
    pcVar25 = *(code **)(pcVar24 + 0x346d4);
  }
  (*pcVar25)(iVar7);
LAB_000203f8:
  if (iStack_17c != *piVar20) {
    pcVar24 = *(code **)(pcVar24 + 0x34784);
    (*pcVar24)();
                    /* WARNING: Could not recover jumptable at 0x00020548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    puVar12 = (undefined4 *)(**(code **)(pcVar24 + 0x343d8))();
    return puVar12;
  }
  return puVar12;
}

