
int do_write_x(int sg_fd,void *dataoutp,int dout_len,opts_t *op)

{
  _Bool _Var1;
  char cVar2;
  undefined1 uVar3;
  undefined1 uVar4;
  uint8_t uVar5;
  uint3 uVar6;
  ushort uVar7;
  undefined2 uVar8;
  undefined *puVar9;
  byte bVar19;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  int iVar13;
  byte bVar20;
  uint8_t *puVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined *puVar18;
  undefined *puVar21;
  uint uVar22;
  undefined *puVar23;
  int iVar24;
  char cVar25;
  undefined *puVar26;
  uint8_t *puVar27;
  uint8_t *puVar28;
  int local_c4;
  char *local_c0;
  int sense_cat;
  uint64_t u;
  uint8_t x_cdb [32];
  uint8_t sense_b [64];
  
  puVar9 = PTR___stack_chk_guard_0002b3b8;
  bVar20 = (byte)op->grpnum;
  bVar19 = bVar20 & 0x1f;
  puVar14 = x_cdb;
  x_cdb[0] = '\0';
  x_cdb[1] = '\0';
  x_cdb[2] = '\0';
  x_cdb[3] = '\0';
  x_cdb[4] = '\0';
  x_cdb[5] = '\0';
  x_cdb[6] = '\0';
  x_cdb[7] = '\0';
  x_cdb[8] = '\0';
  x_cdb[9] = '\0';
  x_cdb[10] = '\0';
  x_cdb[0xb] = '\0';
  x_cdb[0xc] = '\0';
  x_cdb[0xd] = '\0';
  x_cdb[0xe] = '\0';
  x_cdb[0xf] = '\0';
  x_cdb[0x10] = '\0';
  x_cdb[0x11] = '\0';
  x_cdb[0x12] = '\0';
  x_cdb[0x13] = '\0';
  x_cdb[0x14] = '\0';
  x_cdb[0x15] = '\0';
  x_cdb[0x16] = '\0';
  x_cdb[0x17] = '\0';
  x_cdb[0x18] = '\0';
  x_cdb[0x19] = '\0';
  x_cdb[0x1a] = '\0';
  x_cdb[0x1b] = '\0';
  x_cdb[0x1c] = '\0';
  x_cdb[0x1d] = '\0';
  x_cdb[0x1e] = '\0';
  x_cdb[0x1f] = '\0';
  iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8;
  puVar26 = (undefined *)op->verbose;
  cVar25 = op->do_scattered;
  _Var1 = op->do_write_normal;
  if (op->do_16 != false) {
    if ((_Bool)cVar25 == false) {
      u._0_4_ = *(uint *)&op->lba;
      u._4_4_ = (uint)op->lba;
      puVar27 = x_cdb + 2;
      uVar22 = (uint)puVar27 & 3;
      *(uint *)(puVar27 + -uVar22) =
           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;
      puVar27 = x_cdb + 5;
      uVar22 = (uint)puVar27 & 3;
      *(uint *)(puVar27 + -uVar22) =
           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |
           u._0_4_ << (3 - uVar22) * 8;
      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);
      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);
      x_cdb._8_2_ = (undefined2)u._4_4_;
    }
    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);
    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;
    if (_Var1 == false) {
      if (op->do_atomic != false) {
        if (0xffff < op->numblocks) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);
          iVar10 = 1;
          goto LAB_00014fa8;
        }
        bVar20 = (byte)((op->wrprotect & 7U) << 5);
        x_cdb._1_3_ = (uint3)bVar20 << 0x10;
        if (op->dpo != false) {
          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;
        }
        if (op->fua != false) {
          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;
        }
        x_cdb[0] = 0x9c;
        uVar6 = (uint3)x_cdb._1_3_ >> 8;
        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);
        x_cdb[2] = (char)uVar6;
        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;
        local_c4 = 0x10;
        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);
        x_cdb[0xb] = (uint8_t)op->atomic_boundary;
        goto LAB_00014b3c;
      }
      if (op->do_or == false) {
        if (op->do_same == false) {
          if ((_Bool)cVar25 != false) {
            bVar19 = (byte)((op->wrprotect & 7U) << 5);
            if (op->dpo != false) {
              bVar19 = bVar19 | 0x10;
            }
            x_cdb._2_2_ = (ushort)bVar19 << 8;
            uVar7 = x_cdb._2_2_;
            if (op->fua != false) {
              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;
              uVar7 = x_cdb._2_2_;
            }
            x_cdb[0] = 0x9f;
            x_cdb[1] = '\x12';
            x_cdb[2] = (char)(uVar7 >> 8);
            x_cdb[3] = (char)uVar7;
            uVar22 = op->dld;
            if (uVar22 != 0) {
              if ((uVar22 & 1) != 0) {
                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |
                               0x4000;
              }
              if ((uVar22 & 2) != 0) {
                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;
              }
              if ((uVar22 & 4) != 0) {
                x_cdb._2_2_ = uVar7 | 0x100;
                x_cdb[0] = 0x9f;
                x_cdb[1] = '\x12';
              }
            }
            u._0_4_ = op->numblocks;
            local_c4 = 0x10;
            x_cdb._4_2_ = op->scat_lbdof;
            x_cdb._8_2_ = op->scat_num_lbard;
            puVar27 = x_cdb + 10;
            uVar22 = (uint)puVar27 & 3;
            *(uint *)(puVar27 + -uVar22) =
                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;
            puVar27 = x_cdb + 0xd;
            uVar22 = (uint)puVar27 & 3;
            *(uint *)(puVar27 + -uVar22) =
                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |
                 u._0_4_ << (3 - uVar22) * 8;
            goto LAB_00014e70;
          }
          uVar12 = 0x10;
          if (op->do_stream == false) goto LAB_00014c10;
          bVar20 = (byte)((op->wrprotect & 7U) << 5);
          if (op->dpo != false) {
            bVar20 = bVar20 | 0x10;
          }
          x_cdb._1_3_ = (uint3)bVar20 << 0x10;
          if (op->fua != false) {
            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;
          }
          x_cdb[0] = 0x9a;
          x_cdb[1] = SUB31(x_cdb._1_3_,2);
          x_cdb[2] = SUB31(x_cdb._1_3_,1);
          x_cdb[3] = (uint8_t)x_cdb._1_3_;
          x_cdb[10] = (uint8_t)(op->str_id >> 8);
          x_cdb[0xb] = (uint8_t)op->str_id;
          local_c4 = 0x10;
          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;
          goto LAB_00014e70;
        }
        bVar20 = (byte)((op->wrprotect & 7U) << 5);
        x_cdb._1_3_ = (uint3)bVar20 << 0x10;
        if (op->do_anchor != false) {
          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;
        }
        uVar6 = x_cdb._1_3_;
        if (op->do_unmap != false) {
          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;
          uVar6 = x_cdb._1_3_;
        }
        x_cdb[0] = 0x93;
        x_cdb[1] = (char)(uVar6 >> 0x10);
        x_cdb[2] = (char)(uVar6 >> 8);
        x_cdb[3] = (char)uVar6;
        uVar12 = x_cdb._0_4_;
        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);
        uVar5 = x_cdb[1];
        x_cdb._0_4_ = uVar12;
        if (op->ndob != false) goto LAB_00014a98;
      }
      else {
        bVar20 = (byte)((op->wrprotect & 7U) << 5);
        x_cdb._1_3_ = (uint3)bVar20 << 0x10;
        uVar6 = x_cdb._1_3_;
        if (op->dpo != false) {
          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;
          uVar6 = x_cdb._1_3_;
        }
        x_cdb[0] = 0x8b;
        x_cdb[1] = (char)(uVar6 >> 0x10);
        x_cdb[2] = (char)(uVar6 >> 8);
        x_cdb[3] = (char)uVar6;
        if (op->fua != false) {
          x_cdb._1_3_ = uVar6 | 0x80000;
          x_cdb[0] = 0x8b;
        }
      }
    }
    else {
      bVar19 = (byte)((op->wrprotect & 7U) << 5);
      x_cdb._1_3_ = (uint3)bVar19 << 0x10;
      if (op->dpo != false) {
        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
      }
      uVar6 = x_cdb._1_3_;
      if (op->fua != false) {
        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;
        uVar6 = x_cdb._1_3_;
      }
      x_cdb[0] = 0x8a;
      x_cdb[1] = (char)(uVar6 >> 0x10);
      x_cdb[2] = (char)(uVar6 >> 8);
      x_cdb[3] = (char)uVar6;
      uVar12 = x_cdb._0_4_;
      uVar22 = op->dld;
      if (uVar22 != 0) {
        if ((uVar22 & 1) != 0) {
          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;
        }
        if ((uVar22 & 2) != 0) {
          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;
        }
        if ((uVar22 & 4) != 0) {
          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);
          uVar5 = x_cdb[1];
          x_cdb._0_4_ = uVar12;
LAB_00014a98:
          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;
        }
      }
    }
    u._0_4_ = op->numblocks;
    local_c4 = 0x10;
    puVar27 = x_cdb + 10;
    uVar22 = (uint)puVar27 & 3;
    *(uint *)(puVar27 + -uVar22) =
         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;
    puVar27 = x_cdb + 0xd;
    uVar22 = (uint)puVar27 & 3;
    *(uint *)(puVar27 + -uVar22) =
         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |
         u._0_4_ << (3 - uVar22) * 8;
    goto LAB_00014b3c;
  }
  x_cdb[0] = '\x7f';
  x_cdb[1] = '\0';
  x_cdb[2] = '\0';
  x_cdb[3] = '\0';
  x_cdb[7] = '\x18';
  x_cdb[6] = bVar19;
  if ((_Bool)cVar25 == false) {
    u._0_4_ = *(uint *)&op->lba;
    u._4_4_ = (uint)op->lba;
    x_cdb._12_4_ = u._0_4_;
    x_cdb._16_4_ = u._4_4_;
    if (_Var1 == false) goto LAB_00014c58;
LAB_00014adc:
    cVar2 = op->dpo;
    x_cdb[8] = '\0';
    x_cdb[9] = '\v';
    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
joined_r0x00014cf4:
    if (cVar2 != '\0') {
      x_cdb[10] = x_cdb[10] | 0x10;
    }
    if (op->fua != false) {
      x_cdb[10] = x_cdb[10] | 8;
    }
  }
  else {
    if (_Var1 != false) goto LAB_00014adc;
LAB_00014c58:
    if (op->do_atomic != false) {
      x_cdb._4_2_ = op->atomic_boundary;
      cVar2 = op->dpo;
      x_cdb[8] = '\0';
      x_cdb[9] = '\x0f';
      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
      goto joined_r0x00014cf4;
    }
    if (op->do_or != false) {
      uVar3 = op->bmop;
      uVar4 = op->pgp;
      x_cdb[2] = uVar3;
      x_cdb[3] = uVar4;
      x_cdb[8] = '\0';
      x_cdb[9] = '\x0e';
      x_cdb[0] = '\x7f';
      x_cdb[1] = '\0';
      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
      if (op->dpo != false) {
        x_cdb[10] = x_cdb[10] | 0x10;
      }
      if (op->fua != false) {
        x_cdb[10] = x_cdb[10] | 8;
      }
      x_cdb._20_4_ = op->orw_eog;
      x_cdb._24_4_ = op->orw_nog;
      local_c4 = 0x20;
      x_cdb._28_4_ = op->numblocks;
      goto LAB_00014b3c;
    }
    if (op->do_same == false) {
      if ((_Bool)cVar25 == false) goto LAB_00015740;
      x_cdb[8] = '\0';
      x_cdb[9] = '\x11';
      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
      if (op->dpo != false) {
        x_cdb[10] = x_cdb[10] | 0x10;
      }
      if (op->fua != false) {
        x_cdb[10] = x_cdb[10] | 8;
      }
      local_c4 = 0x20;
      x_cdb._12_2_ = op->scat_lbdof;
      x_cdb._16_2_ = op->scat_num_lbard;
      x_cdb._28_4_ = op->numblocks;
      goto LAB_00014e70;
    }
    x_cdb[8] = '\0';
    x_cdb[9] = '\r';
    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
    if (op->do_anchor != false) {
      x_cdb[10] = x_cdb[10] | 0x10;
    }
    if (op->do_unmap != false) {
      x_cdb[10] = x_cdb[10] | 8;
    }
    if (op->ndob != false) {
      x_cdb[10] = x_cdb[10] | 1;
    }
  }
  x_cdb._20_4_ = op->ref_tag;
  local_c4 = 0x20;
  x_cdb._24_2_ = op->app_tag;
  x_cdb._26_2_ = op->tag_mask;
  x_cdb._28_4_ = op->numblocks;
LAB_00014b3c:
  if (1 < (int)puVar26) goto LAB_00014f44;
LAB_00014b48:
  if (cVar25 == '\0') {
LAB_00014b64:
    if ((int)puVar26 < 4) goto LAB_00014e7c;
    if (0 < dout_len) goto LAB_00014b74;
  }
  else {
    if ((int)puVar26 < 3) goto LAB_00014e7c;
    if (dout_len < 0x20) goto LAB_00014b64;
    puVar15 = (undefined4 *)((int)dataoutp + 0x20);
    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;
    (*(code *)PTR_pr2serr_0002b3a4)
              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);
    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);
    puVar23 = PTR_DAT_0002b2d8;
    if (op->scat_num_lbard != 0) {
      iVar10 = 0;
      puVar16 = PTR_DAT_0002b2d8 + -0x6018;
      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;
      puVar18 = PTR_DAT_0002b2d8 + -0x7098;
      do {
        u._4_4_ = puVar15[1];
        u._0_4_ = puVar15[2];
        puVar21 = puVar17;
        if (op->do_16 != false) {
          puVar21 = puVar16;
        }
        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);
        if (op->do_32 != false) {
          u._2_2_ = (undefined2)puVar15[3];
          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);
          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);
          uVar8 = u._0_2_;
          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);
          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);
          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);
        }
        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&
           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {
          iVar10 = 0xf;
          goto LAB_00014fa8;
        }
        iVar10 = iVar10 + 1;
        puVar15 = puVar15 + 8;
      } while (iVar10 < (int)(uint)op->scat_num_lbard);
    }
    if (puVar26 == (undefined *)0x3) {
      iVar10 = op->dry_run;
      goto LAB_00014d34;
    }
LAB_00014b74:
    local_c0 = op->cdb_name;
    if ((dout_len < 0x401) || (6 < (int)puVar26)) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);
      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);
    }
    else {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);
      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);
    }
  }
  iVar10 = op->dry_run;
LAB_00014d34:
  if (iVar10 != 0) goto LAB_00014fec;
  do {
    local_c0 = op->cdb_name;
    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();
    if (iVar11 == 0) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);
      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);
    }
    else {
      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);
      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);
      if (dout_len < 1) {
        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);
        }
      }
      else {
        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);
      }
      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);
      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)
                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);
      if (iVar13 == -1) {
        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);
        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);
      }
      else {
        iVar10 = 0;
        if (iVar13 == -2) {
          if (sense_cat == 3) {
            u._4_4_ = 0;
            u._0_4_ = 0;
            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);
            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);
            iVar10 = sense_cat;
            if (iVar13 != 0) {
              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);
              puVar23 = PTR_0002b2d4;
              if (op->do_scattered == false) {
                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);
                iVar10 = sense_cat;
              }
              else {
                if (u._0_4_ == 0 && u._4_4_ == 0) {
                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);
                }
                else {
                  (*(code *)PTR_pr2serr_0002b3a4)
                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,
                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));
                }
                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);
                iVar10 = sense_cat;
                dout_len = (int)puVar23;
                if (iVar13 != 0) {
                  if (u._0_4_ == 0 && u._4_4_ == 0) {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);
                    iVar10 = sense_cat;
                  }
                  else {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);
                    iVar10 = sense_cat;
                  }
                }
              }
            }
          }
          else {
            iVar10 = sense_cat;
            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {
              iVar10 = 0;
            }
          }
        }
      }
      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);
      puVar14 = sense_b;
    }
LAB_00014fa8:
    while( true ) {
      while( true ) {
        if (iVar24 == *(int *)puVar9) {
          return iVar10;
        }
        (*(code *)PTR___stack_chk_fail_0002b3a8)();
LAB_00015740:
        uVar12 = 0x20;
        if (op->do_stream != false) break;
LAB_00014c10:
        (*(code *)PTR_pr2serr_0002b3a4)
                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);
        iVar10 = 1;
      }
      x_cdb._4_2_ = op->str_id;
      x_cdb[8] = '\0';
      x_cdb[9] = '\x10';
      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);
      if (op->dpo != false) {
        x_cdb[10] = x_cdb[10] | 0x10;
      }
      if (op->fua != false) {
        x_cdb[10] = x_cdb[10] | 8;
      }
      x_cdb._20_4_ = op->ref_tag;
      local_c4 = 0x20;
      x_cdb._24_2_ = op->app_tag;
      x_cdb._26_2_ = op->tag_mask;
      x_cdb._28_4_ = op->numblocks;
LAB_00014e70:
      if (1 < (int)puVar26) goto LAB_00014f44;
LAB_00014e7c:
      iVar10 = op->dry_run;
      if (iVar10 == 0) break;
      if (puVar26 != (undefined *)0x0) {
LAB_00014fec:
        local_c0 = op->cdb_name;
        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);
        iVar10 = op->dry_run;
      }
      puVar26 = PTR_DAT_0002b2d8;
      if (iVar10 < 2) {
        iVar10 = 0;
      }
      else {
        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);
        if ((int)puVar14 < 0) {
          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
          puVar14 = (uint8_t *)*puVar15;
          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);
          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);
        }
        else {
          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);
          if (iVar10 < 0) {
            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
            puVar23 = puVar26 + -0x6f94;
            puVar26 = (undefined *)*puVar15;
            (*(code *)PTR_perror_0002b3a0)(puVar23);
            (*(code *)PTR_close_0002b2fc)(puVar14);
            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);
          }
          else {
            (*(code *)PTR_close_0002b2fc)(puVar14);
            (*(code *)PTR___printf_chk_0002b340)
                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);
            if (op->do_scattered == false) {
              (*(code *)PTR_putchar_0002b358)(10);
              iVar10 = 0;
            }
            else {
              (*(code *)PTR___printf_chk_0002b340)
                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,
                         op->scat_num_lbard);
              iVar10 = 0;
            }
          }
        }
      }
    }
  } while( true );
LAB_00014f44:
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);
  puVar23 = PTR_DAT_0002b2d8 + -29000;
  puVar27 = puVar14;
  do {
    puVar28 = puVar27 + 1;
    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);
    puVar27 = puVar28;
  } while (puVar14 + local_c4 != puVar28);
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);
  cVar25 = op->do_scattered;
  goto LAB_00014b48;
}



int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)

{
  undefined1 *puVar1;
  char cVar2;
  ushort uVar3;
  uint *puVar4;
  undefined1 uVar5;
  undefined2 uVar6;
  undefined *puVar7;
  undefined1 auVar8 [4];
  byte bVar18;
  int iVar9;
  int iVar10;
  undefined4 uVar11;
  int iVar12;
  byte bVar19;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined *puVar20;
  uint uVar21;
  undefined *puVar22;
  char cVar23;
  undefined *puVar24;
  undefined4 *puVar25;
  int local_c4;
  char *local_c0;
  int local_9c;
  undefined4 local_98;
  uint local_94;
  undefined1 local_8c [4];
  undefined1 local_88 [2];
  byte bStack_86;
  undefined1 uStack_85;
  undefined2 local_84;
  undefined1 auStack_82 [2];
  undefined1 local_80 [3];
  undefined1 uStack_7d;
  uint local_7c;
  undefined4 local_78;
  undefined4 local_74;
  undefined4 local_70;
  undefined4 local_6c [16];
  int local_2c;
  
  puVar7 = PTR___stack_chk_guard_0002b3b8;
  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);
  bVar18 = bVar19 & 0x1f;
  puVar13 = (undefined4 *)local_8c;
  local_8c = (undefined1  [4])0x0;
  local_88 = (undefined1  [2])0x0;
  bStack_86 = 0;
  uStack_85 = 0;
  local_84 = 0;
  auStack_82[0] = 0;
  auStack_82[1] = 0;
  _local_80 = 0;
  local_7c = 0;
  local_78 = 0;
  local_74 = 0;
  local_70 = 0;
  puVar24 = *(undefined **)(param_4 + 0x30);
  cVar23 = param_4[9];
  cVar2 = param_4[0xc];
  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;
  if (*param_4 != '\0') {
    if (cVar23 == '\0') {
      local_98 = *(uint *)(param_4 + 0x68);
      local_94 = *(uint *)(param_4 + 0x6c);
      puVar1 = local_8c + 2;
      uVar21 = (uint)puVar1 & 3;
      *(uint *)(puVar1 + -uVar21) =
           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
      puVar1 = local_88 + 1;
      uVar21 = (uint)puVar1 & 3;
      *(uint *)(puVar1 + -uVar21) =
           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
           local_98 << (3 - uVar21) * 8;
      bStack_86 = (byte)(local_94 >> 0x18);
      uStack_85 = (undefined1)(local_94 >> 0x10);
      local_84 = (undefined2)local_94;
    }
    uVar6 = CONCAT11(bVar19,uStack_7d);
    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;
    if (cVar2 == '\0') {
      if (param_4[3] != '\0') {
        if (0xffff < *(uint *)(param_4 + 0x54)) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);
          iVar9 = 1;
          goto LAB_00014fa8;
        }
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[0xe] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        if (param_4[0xf] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
        }
        local_8c[0] = 0x9c;
        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;
        local_c4 = 0x10;
        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);
        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);
        goto LAB_00014b3c;
      }
      if (param_4[5] == '\0') {
        if (param_4[8] == '\0') {
          if (cVar23 != '\0') {
            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
            if (param_4[0xe] != '\0') {
              bVar18 = bVar18 | 0x10;
            }
            local_8c._2_2_ = (ushort)bVar18 << 8;
            if (param_4[0xf] != '\0') {
              local_8c._2_2_ = local_8c._2_2_ | 0x800;
            }
            local_8c._0_2_ = 0x9f12;
            uVar21 = *(uint *)(param_4 + 0x14);
            if (uVar21 != 0) {
              if ((uVar21 & 1) != 0) {
                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |
                            0x4000;
              }
              if ((uVar21 & 2) != 0) {
                _local_80 = _local_80 | 0x8000;
              }
              if ((uVar21 & 4) != 0) {
                local_8c._2_2_ = local_8c._2_2_ | 0x100;
                local_8c._0_2_ = 0x9f12;
              }
            }
            local_98 = *(uint *)(param_4 + 0x54);
            local_c4 = 0x10;
            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);
            local_84 = *(undefined2 *)(param_4 + 0x40);
            uVar21 = (uint)auStack_82 & 3;
            puVar4 = (uint *)(auStack_82 + -uVar21);
            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
            puVar1 = local_80 + 1;
            uVar21 = (uint)puVar1 & 3;
            *(uint *)(puVar1 + -uVar21) =
                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
                 local_98 << (3 - uVar21) * 8;
            goto LAB_00014e70;
          }
          uVar11 = 0x10;
          if (param_4[10] == '\0') goto LAB_00014c10;
          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
          if (param_4[0xe] != '\0') {
            bVar19 = bVar19 | 0x10;
          }
          local_8c._1_3_ = (uint3)bVar19 << 0x10;
          if (param_4[0xf] != '\0') {
            local_8c._1_3_ = local_8c._1_3_ | 0x80000;
          }
          local_8c[0] = 0x9a;
          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);
          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);
          local_c4 = 0x10;
          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;
          goto LAB_00014e70;
        }
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[2] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        if (param_4[0xb] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
        }
        local_8c[0] = 0x93;
        auVar8 = local_8c;
        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);
        uVar5 = local_8c[1];
        local_8c = auVar8;
        if (param_4[0x10] != '\0') goto LAB_00014a98;
      }
      else {
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[0xe] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        local_8c[0] = 0x8b;
        if (param_4[0xf] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
          local_8c[0] = 0x8b;
        }
      }
    }
    else {
      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      local_8c._1_3_ = (uint3)bVar18 << 0x10;
      if (param_4[0xe] != '\0') {
        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;
      }
      if (param_4[0xf] != '\0') {
        local_8c._1_3_ = local_8c._1_3_ | 0x80000;
      }
      local_8c[0] = 0x8a;
      auVar8 = local_8c;
      uVar21 = *(uint *)(param_4 + 0x14);
      if (uVar21 != 0) {
        if ((uVar21 & 1) != 0) {
          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;
        }
        if ((uVar21 & 2) != 0) {
          _local_80 = _local_80 | 0x8000;
        }
        if ((uVar21 & 4) != 0) {
          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);
          uVar5 = local_8c[1];
          local_8c = auVar8;
LAB_00014a98:
          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);
        }
      }
    }
    local_98 = *(uint *)(param_4 + 0x54);
    local_c4 = 0x10;
    uVar21 = (uint)auStack_82 & 3;
    puVar4 = (uint *)(auStack_82 + -uVar21);
    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
    puVar1 = local_80 + 1;
    uVar21 = (uint)puVar1 & 3;
    *(uint *)(puVar1 + -uVar21) =
         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
         local_98 << (3 - uVar21) * 8;
    goto LAB_00014b3c;
  }
  local_8c = (undefined1  [4])0x7f000000;
  uStack_85 = 0x18;
  bStack_86 = bVar18;
  if (cVar23 == '\0') {
    local_98 = *(uint *)(param_4 + 0x68);
    local_94 = *(uint *)(param_4 + 0x6c);
    _local_80 = local_98;
    local_7c = local_94;
    if (cVar2 == '\0') goto LAB_00014c58;
LAB_00014adc:
    cVar2 = param_4[0xe];
    local_84 = 0xb;
    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
joined_r0x00014cf4:
    if (cVar2 != '\0') {
      auStack_82[0] = auStack_82[0] | 0x10;
    }
    if (param_4[0xf] != '\0') {
      auStack_82[0] = auStack_82[0] | 8;
    }
  }
  else {
    if (cVar2 != '\0') goto LAB_00014adc;
LAB_00014c58:
    if (param_4[3] != '\0') {
      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);
      cVar2 = param_4[0xe];
      local_84 = 0xf;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      goto joined_r0x00014cf4;
    }
    if (param_4[5] != '\0') {
      local_84 = 0xe;
      local_8c._0_2_ = 0x7f00;
      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_78 = *(undefined4 *)(param_4 + 0x58);
      local_74 = *(undefined4 *)(param_4 + 0x5c);
      local_c4 = 0x20;
      local_70 = *(undefined4 *)(param_4 + 0x54);
      goto LAB_00014b3c;
    }
    if (param_4[8] == '\0') {
      if (cVar23 == '\0') goto LAB_00015740;
      local_84 = 0x11;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_c4 = 0x20;
      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);
      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);
      local_70 = *(undefined4 *)(param_4 + 0x54);
      goto LAB_00014e70;
    }
    local_84 = 0xd;
    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
    if (param_4[2] != '\0') {
      auStack_82[0] = auStack_82[0] | 0x10;
    }
    if (param_4[0xb] != '\0') {
      auStack_82[0] = auStack_82[0] | 8;
    }
    if (param_4[0x10] != '\0') {
      auStack_82[0] = auStack_82[0] | 1;
    }
  }
  local_78 = *(undefined4 *)(param_4 + 0x60);
  local_c4 = 0x20;
  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));
  local_70 = *(undefined4 *)(param_4 + 0x54);
LAB_00014b3c:
  if (1 < (int)puVar24) goto LAB_00014f44;
LAB_00014b48:
  if (cVar23 == '\0') {
LAB_00014b64:
    if ((int)puVar24 < 4) goto LAB_00014e7c;
    if (0 < (int)param_3) goto LAB_00014b74;
  }
  else {
    if ((int)puVar24 < 3) goto LAB_00014e7c;
    if ((int)param_3 < 0x20) goto LAB_00014b64;
    iVar9 = *(int *)(param_4 + 0x4c);
    uVar3 = *(ushort *)(param_4 + 0x3e);
    puVar14 = (undefined4 *)(param_2 + 0x20);
    (*(code *)PTR_pr2serr_0002b3a4)
              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,
               *(undefined2 *)(param_4 + 0x40));
    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);
    puVar22 = PTR_DAT_0002b2d8;
    if (*(short *)(param_4 + 0x40) != 0) {
      iVar10 = 0;
      puVar15 = PTR_DAT_0002b2d8 + -0x6018;
      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;
      puVar17 = PTR_DAT_0002b2d8 + -0x7098;
      do {
        local_94 = puVar14[1];
        local_98 = puVar14[2];
        puVar20 = puVar16;
        if (*param_4 != '\0') {
          puVar20 = puVar15;
        }
        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)
        ;
        if (param_4[1] != '\0') {
          local_98._2_2_ = (undefined2)puVar14[3];
          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);
          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);
          uVar6 = local_98._0_2_;
          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);
          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);
          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);
        }
        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&
           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {
          iVar9 = 0xf;
          goto LAB_00014fa8;
        }
        iVar10 = iVar10 + 1;
        puVar14 = puVar14 + 8;
      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));
    }
    if (puVar24 == (undefined *)0x3) {
      iVar9 = *(int *)(param_4 + 0x18);
      goto LAB_00014d34;
    }
LAB_00014b74:
    local_c0 = param_4 + 0x94;
    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);
      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);
    }
    else {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);
      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);
    }
  }
  iVar9 = *(int *)(param_4 + 0x18);
LAB_00014d34:
  if (iVar9 != 0) goto LAB_00014fec;
  do {
    local_c0 = param_4 + 0x94;
    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();
    if (iVar10 == 0) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);
      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);
    }
    else {
      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);
      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);
      if ((int)param_3 < 1) {
        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);
        }
      }
      else {
        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);
      }
      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)
                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);
      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)
                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);
      if (iVar12 == -1) {
        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);
        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);
      }
      else {
        iVar9 = 0;
        if (iVar12 == -2) {
          if (local_9c == 3) {
            local_94 = 0;
            local_98 = 0;
            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);
            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);
            iVar9 = local_9c;
            if (iVar12 != 0) {
              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);
              puVar22 = PTR_0002b2d4;
              if (param_4[9] == '\0') {
                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);
                iVar9 = local_9c;
              }
              else {
                if (local_98 == 0 && local_94 == 0) {
                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);
                }
                else {
                  (*(code *)PTR_pr2serr_0002b3a4)
                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,
                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));
                }
                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)
                                   (local_6c,puVar24,&local_98);
                iVar9 = local_9c;
                param_3 = puVar22;
                if (iVar12 != 0) {
                  if (local_98 == 0 && local_94 == 0) {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);
                    iVar9 = local_9c;
                  }
                  else {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);
                    iVar9 = local_9c;
                  }
                }
              }
            }
          }
          else {
            iVar9 = local_9c;
            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {
              iVar9 = 0;
            }
          }
        }
      }
      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);
      puVar13 = local_6c;
    }
LAB_00014fa8:
    while( true ) {
      while( true ) {
        if (local_2c == *(int *)puVar7) {
          return iVar9;
        }
        (*(code *)PTR___stack_chk_fail_0002b3a8)();
LAB_00015740:
        uVar11 = 0x20;
        if (param_4[10] != '\0') break;
LAB_00014c10:
        (*(code *)PTR_pr2serr_0002b3a4)
                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);
        iVar9 = 1;
      }
      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);
      local_84 = 0x10;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_78 = *(undefined4 *)(param_4 + 0x60);
      local_c4 = 0x20;
      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));
      local_70 = *(undefined4 *)(param_4 + 0x54);
LAB_00014e70:
      if (1 < (int)puVar24) goto LAB_00014f44;
LAB_00014e7c:
      iVar9 = *(int *)(param_4 + 0x18);
      if (iVar9 == 0) break;
      if (puVar24 != (undefined *)0x0) {
LAB_00014fec:
        local_c0 = param_4 + 0x94;
        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);
        iVar9 = *(int *)(param_4 + 0x18);
      }
      puVar24 = PTR_DAT_0002b2d8;
      if (iVar9 < 2) {
        iVar9 = 0;
      }
      else {
        puVar13 = (undefined4 *)
                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);
        if ((int)puVar13 < 0) {
          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
          puVar13 = (undefined4 *)*puVar13;
          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);
          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);
        }
        else {
          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);
          if (iVar9 < 0) {
            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
            puVar22 = puVar24 + -0x6f94;
            puVar24 = (undefined *)*puVar14;
            (*(code *)PTR_perror_0002b3a0)(puVar22);
            (*(code *)PTR_close_0002b2fc)(puVar13);
            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);
          }
          else {
            (*(code *)PTR_close_0002b2fc)(puVar13);
            (*(code *)PTR___printf_chk_0002b340)
                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);
            if (param_4[9] == '\0') {
              (*(code *)PTR_putchar_0002b358)(10);
              iVar9 = 0;
            }
            else {
              (*(code *)PTR___printf_chk_0002b340)
                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),
                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));
              iVar9 = 0;
            }
          }
        }
      }
    }
  } while( true );
LAB_00014f44:
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);
  puVar22 = PTR_DAT_0002b2d8 + -29000;
  puVar14 = puVar13;
  do {
    puVar25 = (undefined4 *)((int)puVar14 + 1);
    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);
    puVar14 = puVar25;
  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);
  cVar23 = param_4[9];
  goto LAB_00014b48;
}


lui gp,0x2
addiu gp,gp,-0x16cc
addu gp,gp,t9
addiu sp,sp,-0xf0
lw v0,0x1c(a3)
sw s3,0xd4(sp)
andi v0,v0,0x1f
sw s4,0xd8(sp)
or s4,a1,zero
sw s0,0xc8(sp)
addiu s0,sp,0x64
sw a0,0xf0(sp)
lw s3,-0x7ee8(gp)
lbu a0,0x0(a3)
sw gp,0x20(sp)
sw s7,0xe4(sp)
or s7,a3,zero
sw s2,0xd0(sp)
or s2,a2,zero
sw s1,0xcc(sp)
sw ra,0xec(sp)
sw s8,0xe8(sp)
sw s6,0xe0(sp)
sw s5,0xdc(sp)
sw zero,0x64(sp)
sw zero,0x4(s0)
sw zero,0x8(s0)
sw zero,0xc(s0)
sw zero,0x10(s0)
sw zero,0x14(s0)
sw zero,0x18(s0)
sw zero,0x1c(s0)
lw a1,0x0(s3)
lw s1,0x30(a3)
lbu a2,0x9(a3)
lbu a3,0xc(a3)
sw a1,0xc4(sp)
beq a0,zero,0x00014abc
_nop
beq a2,zero,0x00015008
_nop
beq a3,zero,0x00014bd8
_sb v0,0x72(sp)
lw a0,0x34(s7)
li a3,-0x76
lbu a1,0xe(s7)
sb a3,0x64(sp)
sll a0,a0,0x5
andi a0,a0,0xff
beq a1,zero,0x00014a40
_sb a0,0x65(sp)
ori a0,a0,0x10
sb a0,0x65(sp)
lbu a0,0xf(s7)
beq a0,zero,0x00014a54
_lbu a0,0x65(sp)
ori a0,a0,0x8
sb a0,0x65(sp)
lw a0,0x14(s7)
beq a0,zero,0x00014a9c
_andi a1,a0,0x1
beq a1,zero,0x00014a6c
_ori v0,v0,0x40
sb v0,0x72(sp)
andi v0,a0,0x2
beq v0,zero,0x00014a84
_lbu v0,0x72(sp)
li a1,-0x80
or v0,v0,a1
sb v0,0x72(sp)
andi a0,a0,0x4
beq a0,zero,0x00014aa0
_li v0,0x10
lbu v0,0x65(sp)
ori v0,v0,0x1
sb v0,0x65(sp)
li v0,0x10
lw a0,0x54(s7)
sw v0,0x2c(sp)
addiu v0,sp,0x6e
sw a0,0x58(sp)
swl a0,0x6e(sp)
b 0x00014b3c
_swr a0,0x3(v0)
sb v0,0x6a(sp)
li v0,0x7f
sb v0,0x64(sp)
li v0,0x18
beq a2,zero,0x00014c34
_sb v0,0x6b(sp)
beq a3,zero,0x00014c58
_nop
lw v0,0x34(s7)
li a1,0xb
lbu a0,0xe(s7)
sh a1,0x6c(sp)
sll v0,v0,0x5
andi v0,v0,0xff
bne a0,zero,0x00014cfc
_sb v0,0x6e(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00014b18
_li v0,0x20
lbu v0,0x6e(sp)
ori v0,v0,0x8
sb v0,0x6e(sp)
li v0,0x20
lw a3,0x60(s7)
lhu a1,0x3a(s7)
lhu a0,0x44(s7)
sw v0,0x2c(sp)
sw a3,0x78(sp)
sh a1,0x7c(sp)
sh a0,0x7e(sp)
lw v0,0x54(s7)
sw v0,0x80(sp)
slti v0,s1,0x2
beq v0,zero,0x00014f44
_lw a0,-0x7fc8(gp)
beq a2,zero,0x00014b64
_slti v0,s1,0x4
slti v0,s1,0x3
bne v0,zero,0x00014e7c
_slti v0,s2,0x20
beq v0,zero,0x000150fc
_slti v0,s1,0x4
bne v0,zero,0x00014e7c
_addiu v0,s7,0x94
blez s2,0x00014d30
_sw v0,0x30(sp)
slti v0,s2,0x401
lw t9,-0x7efc(gp)
bne v0,zero,0x00014d08
_or a1,s2,zero
slti v0,s1,0x7
beq v0,zero,0x00014d08
_nop
lw a0,-0x7fc8(gp)
jalr t9
_addiu a0,a0,-0x7058
li a2,0x1
lw gp,0x20(sp)
li a1,0x400
lw t9,-0x7f08(gp)
jalr t9
_or a0,s4,zero
or a1,s2,zero
lw gp,0x20(sp)
lw a2,0x30(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
jalr t9
_addiu a0,a0,-0x7020
b 0x00014d30
_lw gp,0x20(sp)
lbu v0,0x3(s7)
bne v0,zero,0x00015038
_lui v0,0x1
lbu v0,0x5(s7)
bne v0,zero,0x00015478
_li a1,-0x75
lbu v0,0x8(s7)
bne v0,zero,0x0001553c
_li a1,-0x6d
bne a2,zero,0x000155a4
_li a1,-0x60ee
lbu v0,0xa(s7)
bne v0,zero,0x00014e20
_li a2,0x10
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
addiu a1,a1,-0x50e8
jalr t9
_addiu a0,a0,-0x717c
li v0,0x1
b 0x00014fa8
_lw gp,0x20(sp)
lw a0,0x68(s7)
lw a1,0x6c(s7)
sw a0,0x58(sp)
sw a1,0x5c(sp)
lw v0,0x58(sp)
sw v0,0x70(sp)
lw v0,0x5c(sp)
bne a3,zero,0x00014adc
_sw v0,0x74(sp)
lbu v0,0x3(s7)
bne v0,zero,0x00014cd8
_li a3,0xf
lbu v0,0x5(s7)
beq v0,zero,0x000154b8
_li a3,0xe
lw v0,0x34(s7)
lhu a1,0x38(s7)
lbu a0,0xe(s7)
sll v0,v0,0x5
sh a3,0x6c(sp)
sh a1,0x66(sp)
andi v0,v0,0xff
beq a0,zero,0x00014c9c
_sb v0,0x6e(sp)
ori v0,v0,0x10
sb v0,0x6e(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00014cb8
_li v0,0x20
lbu v0,0x6e(sp)
ori v0,v0,0x8
sb v0,0x6e(sp)
li v0,0x20
lw a1,0x58(s7)
lw a0,0x5c(s7)
sw v0,0x2c(sp)
sw a1,0x78(sp)
sw a0,0x7c(sp)
lw v0,0x54(s7)
b 0x00014b3c
_sw v0,0x80(sp)
lw v0,0x34(s7)
lhu a1,0x3c(s7)
lbu a0,0xe(s7)
sll v0,v0,0x5
sh a3,0x6c(sp)
sh a1,0x68(sp)
andi v0,v0,0xff
beq a0,zero,0x00014afc
_sb v0,0x6e(sp)
ori v0,v0,0x10
b 0x00014afc
_sb v0,0x6e(sp)
lw a0,-0x7fc8(gp)
jalr t9
_addiu a0,a0,-0x6ff0
li a2,0x1
lw gp,0x20(sp)
or a1,s2,zero
lw t9,-0x7f8c(gp)
jalr t9
_or a0,s4,zero
lw gp,0x20(sp)
lw v0,0x18(s7)
bne v0,zero,0x00014fec
_lw a0,-0x7fc8(gp)
lw t9,-0x7ee0(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x00015348
_or s6,v0,zero
lw t9,-0x7fb0(gp)
or a1,s0,zero
lw a2,0x2c(sp)
or a0,v0,zero
jalr t9
_addiu s0,sp,0x84
li a2,0x40
lw gp,0x20(sp)
or a1,s0,zero
lw t9,-0x7f68(gp)
jalr t9
_or a0,s6,zero
bgtz s2,0x000150e0
_lw gp,0x20(sp)
beq s1,zero,0x00014da4
_lw t9,-0x7f34(gp)
lbu v0,0x10(s7)
beq v0,zero,0x00015524
_lw a0,-0x7fc8(gp)
lw t9,-0x7f34(gp)
or a3,s1,zero
lw a2,0x2c(s7)
or a0,s6,zero
jalr t9
_lw a1,0xf0(sp)
addiu a0,sp,0x54
lw gp,0x20(sp)
or a2,v0,zero
lw a1,0x30(sp)
li v0,0x1
or a3,zero,zero
sw a0,0x1c(sp)
sw s1,0x18(sp)
or a0,s6,zero
sw v0,0x14(sp)
lw t9,-0x7f78(gp)
jalr t9
_sw s0,0x10(sp)
li a0,-0x1
beq v0,a0,0x00015374
_lw gp,0x20(sp)
li a0,-0x2
beq v0,a0,0x00015310
_or v0,zero,zero
lw t9,-0x7f40(gp)
or a0,s6,zero
jalr t9
_sw v0,0x2c(sp)
lw gp,0x20(sp)
b 0x00014fa8
_lw v0,0x2c(sp)
lw v0,0x34(s7)
li a2,-0x66
lbu a1,0xe(s7)
lhu a0,0x42(s7)
sll v0,v0,0x5
sb a2,0x64(sp)
beq a1,zero,0x00014e44
_andi v0,v0,0xff
ori v0,v0,0x10
sb v0,0x65(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00014e5c
_lbu v0,0x65(sp)
ori v0,v0,0x8
sb v0,0x65(sp)
lw v0,0x54(s7)
li v1,0x10
sh a0,0x6e(sp)
sw v1,0x2c(sp)
sh v0,0x70(sp)
slti v0,s1,0x2
beq v0,zero,0x00014f44
_lw a0,-0x7fc8(gp)
lw v0,0x18(s7)
beq v0,zero,0x00015518
_nop
bne s1,zero,0x00014fe4
_lw a0,-0x7fc8(gp)
slti v0,v0,0x2
bne v0,zero,0x00014fa4
_lw s1,-0x7fc8(gp)
li a2,0x1a4
lw t9,-0x7f38(gp)
li a1,0x301
jalr t9
_addiu a0,s1,-0x6f94
lw gp,0x20(sp)
bltz v0,0x000152c0
_or s0,v0,zero
lw t9,-0x7f30(gp)
or a2,s2,zero
or a1,s4,zero
jalr t9
_or a0,v0,zero
bltz v0,0x00015098
_lw gp,0x20(sp)
lw t9,-0x7fa4(gp)
jalr t9
_or a0,s0,zero
addiu a3,s1,-0x6f94
lw gp,0x20(sp)
li a0,0x1
or a2,s2,zero
lw a1,-0x7fc8(gp)
lw t9,-0x7f60(gp)
jalr t9
_addiu a1,a1,-0x6f84
lbu v0,0x9(s7)
beq v0,zero,0x000152f8
_lw gp,0x20(sp)
lw a3,-0x7fcc(gp)
li a0,0x1
lw a1,-0x7fc8(gp)
lhu v0,0x40(s7)
lw t9,-0x7f60(gp)
addiu a3,a3,0x6794
lhu a2,0x3e(s7)
addiu a1,a1,-0x6f6c
jalr t9
_sw v0,0x10(sp)
or v0,zero,zero
b 0x00014fa8
_lw gp,0x20(sp)
addiu a1,s7,0x94
lw t9,-0x7efc(gp)
or s5,s0,zero
lw v0,0x2c(sp)
addiu a0,a0,-0x7158
jalr t9
_addu s8,s0,v0
lw gp,0x20(sp)
lw s6,-0x7fc8(gp)
addiu s6,s6,-0x7148
lw t9,-0x7efc(gp)
addiu s5,s5,0x1
lbu a1,-0x1(s5)
jalr t9
_or a0,s6,zero
bne s8,s5,0x00014f6c
_lw gp,0x20(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
jalr t9
_addiu a0,a0,-0x6018
lw gp,0x20(sp)
b 0x00014b48
_lbu a2,0x9(s7)
or v0,zero,zero
lw a0,0xc4(sp)
lw v1,0x0(s3)
bne a0,v1,0x00015734
_lw ra,0xec(sp)
lw s8,0xe8(sp)
lw s7,0xe4(sp)
lw s6,0xe0(sp)
lw s5,0xdc(sp)
lw s4,0xd8(sp)
lw s3,0xd4(sp)
lw s2,0xd0(sp)
lw s1,0xcc(sp)
lw s0,0xc8(sp)
jr ra
_addiu sp,sp,0xf0
addiu v0,s7,0x94
sw v0,0x30(sp)
lw t9,-0x7efc(gp)
lw a1,0x30(sp)
jalr t9
_addiu a0,a0,-0x6fc4
lw gp,0x20(sp)
b 0x00014e90
_lw v0,0x18(s7)
lw a0,0x68(s7)
lw a1,0x6c(s7)
sw a0,0x58(sp)
addiu a0,sp,0x66
sw a1,0x5c(sp)
lw t0,0x58(sp)
lw a1,0x5c(sp)
swl t0,0x66(sp)
swr t0,0x3(a0)
swl a1,0x4(a0)
b 0x00014a10
_swr a1,0x7(a0)
lw a0,0x54(s7)
sltu v0,a0,v0
beq v0,zero,0x00015588
_li a3,-0x64
lw v0,0x34(s7)
lbu a1,0xe(s7)
sb a3,0x64(sp)
sll v0,v0,0x5
andi v0,v0,0xff
beq a1,zero,0x0001506c
_sb v0,0x65(sp)
ori v0,v0,0x10
sb v0,0x65(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00015080
_lbu v0,0x65(sp)
ori v0,v0,0x8
sb v0,0x65(sp)
lhu v0,0x3c(s7)
li v1,0x10
sh a0,0x70(sp)
sw v1,0x2c(sp)
b 0x00014b3c
_sh v0,0x6e(sp)
lw t9,-0x7f4c(gp)
jalr t9
_nop
addiu a0,s1,-0x6f94
lw gp,0x20(sp)
lw t9,-0x7f00(gp)
jalr t9
_lw s1,0x0(v0)
lw gp,0x20(sp)
lw t9,-0x7fa4(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7f54(gp)
jalr t9
_or a0,s1,zero
b 0x00014fa8
_lw gp,0x20(sp)
lw t9,-0x7ed8(gp)
or a2,s2,zero
or a1,s4,zero
jalr t9
_or a0,s6,zero
b 0x00014da0
_lw gp,0x20(sp)
lw v0,0x4c(s7)
addiu v1,s7,0x94
lhu s6,0x3e(s7)
addiu s5,s4,0x20
lw a2,-0x7fcc(gp)
or a1,v1,zero
lw a0,-0x7fc8(gp)
mul s6,s6,v0
lw t9,-0x7efc(gp)
lhu a3,0x40(s7)
addiu a2,a2,0x6794
addiu a0,a0,-0x7140
sw v1,0x30(sp)
jalr t9
_sw s6,0x34(sp)
or a2,s2,zero
lw gp,0x20(sp)
or a1,s6,zero
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
jalr t9
_addiu a0,a0,-0x7118
lhu v0,0x40(s7)
beq v0,zero,0x00015334
_lw gp,0x20(sp)
lw v0,-0x7fc8(gp)
or s6,zero,zero
addiu s8,sp,0x58
sw v0,0x3c(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x6018
sw v0,0x40(sp)
lw v0,-0x7fc8(gp)
sw v0,0x48(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x6ee4
sw v0,0x44(sp)
li v0,0x34
subu v0,v0,s4
sw v0,0x38(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x7098
b 0x000151d8
_sw v0,0x4c(sp)
lw v0,0x38(sp)
lw v1,0x34(sp)
addu v0,s5,v0
sltu v0,v1,v0
bne v0,zero,0x0001529c
_lw t9,-0x7efc(gp)
lhu v0,0x40(s7)
addiu s6,s6,0x1
slt v0,s6,v0
beq v0,zero,0x00015334
_addiu s5,s5,0x20
addiu v0,s5,0x8
lwl t4,0x0(s5)
lwl a3,0x4(s5)
or a1,s6,zero
lw v1,0x3c(sp)
lwl a2,0x0(v0)
lwr t4,0x3(s5)
lwr a3,0x7(s5)
addiu a0,v1,-0x70e0
lbu t3,0x0(s7)
lwr a2,0x3(v0)
lw v1,0x44(sp)
lw t0,0x40(sp)
lw t9,-0x7efc(gp)
or v0,a2,zero
sw t4,0x0(s8)
sw a3,0x4(s8)
movn v1,t0,t3
lw a3,0x5c(sp)
lw a2,0x58(sp)
sw v0,0x0(s8)
sw v1,0x14(sp)
lw v0,0x58(sp)
jalr t9
_sw v0,0x10(sp)
lbu v0,0x1(s7)
beq v0,zero,0x000151ac
_lw gp,0x20(sp)
addiu v0,s5,0xc
lbu a2,0x11(s5)
lbu t4,0x10(s5)
lbu a3,0x13(s5)
lwl a1,0x0(v0)
lbu t3,0x12(s5)
lw v1,0x48(sp)
lw t9,-0x7efc(gp)
lwr a1,0x3(v0)
addiu a0,v1,-0x70b4
sw a1,0x0(s8)
lw a1,0x58(sp)
sb t4,0x0(s8)
sb a2,0x1(s8)
lhu a2,0x58(sp)
sb t3,0x0(s8)
sb a3,0x1(s8)
jalr t9
_lhu a3,0x58(sp)
b 0x000151ac
_lw gp,0x20(sp)
or a1,s6,zero
jalr t9
_lw a0,0x4c(sp)
lw v0,0x28(s7)
slti v0,v0,0x2
bne v0,zero,0x000151c4
_lw gp,0x20(sp)
b 0x00014fa8
_li v0,0xf
lw t9,-0x7f4c(gp)
jalr t9
_nop
addiu a0,s1,-0x6f94
lw gp,0x20(sp)
lw t9,-0x7f00(gp)
jalr t9
_lw s0,0x0(v0)
lw gp,0x20(sp)
lw t9,-0x7f54(gp)
jalr t9
_or a0,s0,zero
b 0x00014fa8
_lw gp,0x20(sp)
lw t9,-0x7f48(gp)
jalr t9
_li a0,0xa
or v0,zero,zero
b 0x00014fa8
_lw gp,0x20(sp)
lw v0,0x54(sp)
li a0,0x3
beq v0,a0,0x00015398
_slti v1,v0,0x3
bne v1,zero,0x00014e04
_addiu v1,v0,-0x14
sltiu v1,v1,0x2
b 0x00014e04
_movn v0,zero,v1
li v0,0x3
bne s1,v0,0x00014b74
_nop
b 0x00014d34
_lw v0,0x18(s7)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
lw a1,0x30(sp)
jalr t9
_addiu a0,a0,-0x6f44
lw gp,0x20(sp)
lw t9,-0x7f54(gp)
jalr t9
_li a0,0xc
b 0x00014fa8
_lw gp,0x20(sp)
lw t9,-0x7ec0(gp)
jalr t9
_or a0,s6,zero
lw gp,0x20(sp)
lw t9,-0x7f54(gp)
jalr t9
_or a0,v0,zero
b 0x00014e04
_lw gp,0x20(sp)
lw t9,-0x7f74(gp)
or v1,zero,zero
or v0,zero,zero
or a0,s6,zero
sw v1,0x5c(sp)
sw v0,0x58(sp)
jalr t9
_addiu s8,sp,0x58
or a0,s0,zero
lw gp,0x20(sp)
or a2,s8,zero
or a1,v0,zero
lw t9,-0x7fac(gp)
jalr t9
_or s1,v0,zero
bne v0,zero,0x000153e4
_lw gp,0x20(sp)
b 0x00014e04
_lw v0,0x54(sp)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
jalr t9
_addiu a0,a0,-0x6f08
lbu v0,0x9(s7)
beq v0,zero,0x00015684
_lw gp,0x20(sp)
lw v1,0x58(sp)
lw v0,0x5c(sp)
or a0,v1,v0
bne a0,zero,0x00015658
_lw s2,-0x7fcc(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
addiu a1,s2,0x6794
jalr t9
_addiu a0,a0,-0x6ee0
lw gp,0x20(sp)
lw t9,-0x7f5c(gp)
or a2,s8,zero
or a1,s1,zero
jalr t9
_or a0,s0,zero
beq v0,zero,0x000153dc
_lw gp,0x20(sp)
lw a2,0x5c(sp)
addiu a1,s2,0x6794
lw v0,0x58(sp)
or v0,v0,a2
bne v0,zero,0x000156b8
_lw t9,-0x7efc(gp)
lw a0,-0x7fc8(gp)
jalr t9
_addiu a0,a0,-0x6eb8
lw gp,0x20(sp)
b 0x00014e04
_lw v0,0x54(sp)
lw v0,0x34(s7)
lbu a0,0xe(s7)
sb a1,0x64(sp)
sll v0,v0,0x5
andi v0,v0,0xff
beq a0,zero,0x0001549c
_sb v0,0x65(sp)
ori v0,v0,0x10
sb v0,0x65(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00014aa0
_li v0,0x10
lbu v0,0x65(sp)
ori v0,v0,0x8
b 0x00014a9c
_sb v0,0x65(sp)
lbu v0,0x8(s7)
beq v0,zero,0x000156d0
_li a1,0xd
lw v0,0x34(s7)
lbu a0,0x2(s7)
sh a1,0x6c(sp)
sll v0,v0,0x5
andi v0,v0,0xff
beq a0,zero,0x000154e8
_sb v0,0x6e(sp)
ori v0,v0,0x10
sb v0,0x6e(sp)
lbu v0,0xb(s7)
beq v0,zero,0x000154fc
_lbu v0,0x6e(sp)
ori v0,v0,0x8
sb v0,0x6e(sp)
lbu v0,0x10(s7)
beq v0,zero,0x00014b18
_li v0,0x20
lbu v0,0x6e(sp)
ori v0,v0,0x1
b 0x00014b14
_sb v0,0x6e(sp)
addiu v0,s7,0x94
b 0x00014d3c
_sw v0,0x30(sp)
lw t9,-0x7efc(gp)
lw a1,0x30(sp)
jalr t9
_addiu a0,a0,-0x6f30
b 0x00014da0
_lw gp,0x20(sp)
lw v0,0x34(s7)
lbu a0,0x2(s7)
sb a1,0x64(sp)
sll v0,v0,0x5
andi v0,v0,0xff
beq a0,zero,0x00015560
_sb v0,0x65(sp)
ori v0,v0,0x10
sb v0,0x65(sp)
lbu v0,0xb(s7)
beq v0,zero,0x00015574
_lbu v0,0x65(sp)
ori v0,v0,0x8
sb v0,0x65(sp)
lbu v0,0x10(s7)
beq v0,zero,0x00014a9c
_lbu v0,0x65(sp)
b 0x00014a98
_ori v0,v0,0x1
lw a0,-0x7fc8(gp)
lw t9,-0x7efc(gp)
jalr t9
_addiu a0,a0,-0x71b0
li v0,0x1
b 0x00014fa8
_lw gp,0x20(sp)
lw v0,0x34(s7)
lbu a0,0xe(s7)
sh a1,0x64(sp)
sll v0,v0,0x5
beq a0,zero,0x000155c0
_andi v0,v0,0xff
ori v0,v0,0x10
sb v0,0x66(sp)
lbu v0,0xf(s7)
beq v0,zero,0x000155d8
_lbu v0,0x66(sp)
ori v0,v0,0x8
sb v0,0x66(sp)
lw v0,0x14(s7)
beq v0,zero,0x00015628
_andi a0,v0,0x1
beq a0,zero,0x000155fc
_andi a0,v0,0x2
lbu a0,0x72(sp)
ori a0,a0,0x40
sb a0,0x72(sp)
andi a0,v0,0x2
beq a0,zero,0x00015610
_lbu a0,0x72(sp)
li a1,-0x80
or a0,a0,a1
sb a0,0x72(sp)
andi v0,v0,0x4
beq v0,zero,0x0001562c
_li v0,0x10
lbu v0,0x66(sp)
ori v0,v0,0x1
sb v0,0x66(sp)
li v0,0x10
lw a0,0x54(s7)
lhu a1,0x3e(s7)
sw v0,0x2c(sp)
lhu v0,0x40(s7)
sw a0,0x58(sp)
sh a1,0x68(sp)
sh v0,0x6c(sp)
addiu v0,sp,0x6e
swl a0,0x6e(sp)
b 0x00014e70
_swr a0,0x3(v0)
addiu a3,v0,-0x1
lw a0,-0x7fc8(gp)
addiu v1,v1,-0x1
lw t9,-0x7efc(gp)
sltu v0,a3,v0
addu a2,v0,v1
addiu a1,s2,0x6794
jalr t9
_addiu a0,a0,-0x6ecc
b 0x0001542c
_lw gp,0x20(sp)
lw a0,-0x7fc8(gp)
lw v1,0x5c(sp)
lw v0,0x58(sp)
lw t9,-0x7efc(gp)
addiu a0,a0,-0x6e50
or a3,v1,zero
sw v1,0x14(sp)
or a2,v0,zero
jalr t9
_sw v0,0x10(sp)
lw gp,0x20(sp)
b 0x00014e04
_lw v0,0x54(sp)
lw a0,-0x7fc8(gp)
jalr t9
_addiu a0,a0,-0x6e7c
lw gp,0x20(sp)
b 0x00014e04
_lw v0,0x54(sp)
beq a2,zero,0x00015740
_li a1,0x11
lw v0,0x34(s7)
lbu a0,0xe(s7)
sh a1,0x6c(sp)
sll v0,v0,0x5
beq a0,zero,0x000156f4
_andi v0,v0,0xff
ori v0,v0,0x10
sb v0,0x6e(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00015714
_li v0,0x20
lbu v0,0x6e(sp)
ori v0,v0,0x8
sb v0,0x6e(sp)
li v0,0x20
lhu a1,0x3e(s7)
lhu a0,0x40(s7)
sw v0,0x2c(sp)
sh a1,0x70(sp)
sh a0,0x74(sp)
lw v0,0x54(s7)
b 0x00014e70
_sw v0,0x80(sp)
lw t9,-0x7ef8(gp)
jalr t9
_nop
lbu v0,0xa(s7)
beq v0,zero,0x00014c10
_li a2,0x20
lw v0,0x34(s7)
li a2,0x10
lhu a1,0x42(s7)
lbu a0,0xe(s7)
sll v0,v0,0x5
sh a2,0x6c(sp)
sh a1,0x68(sp)
beq a0,zero,0x00015774
_andi v0,v0,0xff
ori v0,v0,0x10
sb v0,0x6e(sp)
lbu v0,0xf(s7)
beq v0,zero,0x00015794
_li v0,0x20
lbu v0,0x6e(sp)
ori v0,v0,0x8
sb v0,0x6e(sp)
li v0,0x20
lw a2,0x60(s7)
lhu a1,0x3a(s7)
lhu a0,0x44(s7)
sw v0,0x2c(sp)
sw a2,0x78(sp)
sh a1,0x7c(sp)
sh a0,0x7e(sp)
lw v0,0x54(s7)
b 0x00014e70
_sw v0,0x80(sp)
(translation_unit "int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}\n\n" (function_definition "int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" primitive_type (function_declarator "FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auVar8 [4];" type_identifier (array_declarator "auVar8 [4]" identifier [ number_literal ]) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "char cVar23;" primitive_type identifier ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined1 local_8c [4];" type_identifier (array_declarator "local_8c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_88 [2];" type_identifier (array_declarator "local_88 [2]" identifier [ number_literal ]) ;) (declaration "byte bStack_86;" type_identifier identifier ;) (declaration "undefined1 uStack_85;" type_identifier identifier ;) (declaration "undefined2 local_84;" type_identifier identifier ;) (declaration "undefined1 auStack_82 [2];" type_identifier (array_declarator "auStack_82 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_80 [3];" type_identifier (array_declarator "local_80 [3]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_7d;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c [16];" type_identifier (array_declarator "local_6c [16]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar7 = PTR___stack_chk_guard_0002b3b8;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0002b3b8" identifier = identifier) ;) (expression_statement "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);" (assignment_expression "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c)" identifier = (binary_expression "(byte)*(undefined4 *)(param_4 + 0x1c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "bVar18 = bVar19 & 0x1f;" (assignment_expression "bVar18 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)local_8c;" (assignment_expression "puVar13 = (undefined4 *)local_8c" identifier = (cast_expression "(undefined4 *)local_8c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_8c = (undefined1  [4])0x0;" (assignment_expression "local_8c = (undefined1  [4])0x0" identifier = (cast_expression "(undefined1  [4])0x0" ( (type_descriptor "undefined1  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_88 = (undefined1  [2])0x0;" (assignment_expression "local_88 = (undefined1  [2])0x0" identifier = (cast_expression "(undefined1  [2])0x0" ( (type_descriptor "undefined1  [2]" type_identifier (abstract_array_declarator "[2]" [ number_literal ])) ) number_literal)) ;) (expression_statement "bStack_86 = 0;" (assignment_expression "bStack_86 = 0" identifier = number_literal) ;) (expression_statement "uStack_85 = 0;" (assignment_expression "uStack_85 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "auStack_82[0] = 0;" (assignment_expression "auStack_82[0] = 0" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_82[1] = 0;" (assignment_expression "auStack_82[1] = 0" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "_local_80 = 0;" (assignment_expression "_local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = *(undefined **)(param_4 + 0x30);" (assignment_expression "puVar24 = *(undefined **)(param_4 + 0x30)" identifier = (pointer_expression "*(undefined **)(param_4 + 0x30)" * (cast_expression "(undefined **)(param_4 + 0x30)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" identifier = (subscript_expression "param_4[9]" identifier [ number_literal ])) ;) (expression_statement "cVar2 = param_4[0xc];" (assignment_expression "cVar2 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002b3b8" * (cast_expression "(int *)PTR___stack_chk_guard_0002b3b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" if (parenthesized_expression "(*param_4 != '\0')" ( (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" { (if_statement "if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" { (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" identifier = (pointer_expression "*(uint *)(param_4 + 0x68)" * (cast_expression "(uint *)(param_4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x68)" ( (binary_expression "param_4 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" identifier = (pointer_expression "*(uint *)(param_4 + 0x6c)" * (cast_expression "(uint *)(param_4 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x6c)" ( (binary_expression "param_4 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = local_8c + 2;" (assignment_expression "puVar1 = local_8c + 2" identifier = (binary_expression "local_8c + 2" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_88 + 1;" (assignment_expression "puVar1 = local_88 + 1" identifier = (binary_expression "local_88 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "bStack_86 = (byte)(local_94 >> 0x18);" (assignment_expression "bStack_86 = (byte)(local_94 >> 0x18)" identifier = (call_expression "(byte)(local_94 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_94 >> 0x18)" ( (binary_expression "local_94 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uStack_85 = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_85 = (undefined1)(local_94 >> 0x10)" identifier = (call_expression "(undefined1)(local_94 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_94 >> 0x10)" ( (binary_expression "local_94 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined2)local_94;" (assignment_expression "local_84 = (undefined2)local_94" identifier = (cast_expression "(undefined2)local_94" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) })) (expression_statement "uVar6 = CONCAT11(bVar19,uStack_7d);" (assignment_expression "uVar6 = CONCAT11(bVar19,uStack_7d)" identifier = (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier )))) ;) (expression_statement "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,uVar6)" identifier (argument_list "(local_80._0_2_,uVar6)" ( (field_expression "local_80._0_2_" identifier . field_identifier) , identifier ))) & number_literal)) ;) (if_statement "if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }" { (if_statement "if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" if (parenthesized_expression "(param_4[3] != '\0')" ( (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" { (if_statement "if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "(0xffff < *(uint *)(param_4 + 0x54))" ( (binary_expression "0xffff < *(uint *)(param_4 + 0x54)" number_literal < (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x71b0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x71b0" identifier + number_literal) ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x9c;" (assignment_expression "local_8c[0] = 0x9c" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6)" identifier (argument_list "((short)*(uint *)(param_4 + 0x54),uVar6)" ( (cast_expression "(short)*(uint *)(param_4 + 0x54)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) , identifier ))) & number_literal)) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" ( (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c)" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(undefined1)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" if (parenthesized_expression "(param_4[5] == '\0')" ( (binary_expression "param_4[5] == '\0'" (subscript_expression "param_4[5]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }" { (if_statement "if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" if (parenthesized_expression "(param_4[8] == '\0')" ( (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" { (if_statement "if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" if (parenthesized_expression "(cVar23 != '\0')" ( (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" { (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              bVar18 = bVar18 | 0x10;\n            }" { (expression_statement "bVar18 = bVar18 | 0x10;" (assignment_expression "bVar18 = bVar18 | 0x10" identifier = (binary_expression "bVar18 | 0x10" identifier | number_literal)) ;) })) (expression_statement "local_8c._2_2_ = (ushort)bVar18 << 8;" (assignment_expression "local_8c._2_2_ = (ushort)bVar18 << 8" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "(ushort)bVar18 << 8" (cast_expression "(ushort)bVar18" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" { (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x800;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" identifier = (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" { (if_statement "if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" if (parenthesized_expression "((uVar21 & 1) != 0)" ( (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" ( (binary_expression "uVar21 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" { (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" identifier = (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" identifier (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" ( (field_expression "local_80._0_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }" if (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                _local_80 = _local_80 | 0x8000;\n              }" { (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" identifier = (binary_expression "_local_80 | 0x8000" identifier | number_literal)) ;) })) (if_statement "if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" if (parenthesized_expression "((uVar21 & 4) != 0)" ( (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" { (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x100;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) })) })) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" identifier = (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);" (assignment_expression "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" identifier = (binary_expression "(undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" (parenthesized_expression "(undefined1  [2])" ( (subscript_expression "undefined1  [2]" identifier [ number_literal ]) )) * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "local_84 = *(undefined2 *)(param_4 + 0x40);" (assignment_expression "local_84 = *(undefined2 *)(param_4 + 0x40)" identifier = (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" identifier = (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" identifier = (cast_expression "(uint *)(auStack_82 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_82 + -uVar21)" ( (binary_expression "auStack_82 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) ;) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" * identifier) = (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" * identifier) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "uVar11 = 0x10;" (assignment_expression "uVar11 = 0x10" identifier = number_literal) ;) (if_statement "if (param_4[10] == '\0') goto LAB_00014c10;" if (parenthesized_expression "(param_4[10] == '\0')" ( (binary_expression "param_4[10] == '\0'" (subscript_expression "param_4[10]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014c10;" goto statement_identifier ;)) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar19 = bVar19 | 0x10;\n          }" { (expression_statement "bVar19 = bVar19 | 0x10;" (assignment_expression "bVar19 = bVar19 | 0x10" identifier = (binary_expression "bVar19 | 0x10" identifier | number_literal)) ;) })) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x9a;" (assignment_expression "local_8c[0] = 0x9a" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" ( (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x42)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42)" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(undefined1)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x42)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6)" identifier (argument_list "((short)*(undefined4 *)(param_4 + 0x54),uVar6)" ( (cast_expression "(short)*(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) , identifier ))) & number_literal)) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[2] != '\0')" ( (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" if (parenthesized_expression "(param_4[0xb] != '\0')" ( (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x93;" (assignment_expression "local_8c[0] = 0x93" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" identifier = identifier) ;) (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" identifier [ number_literal ]) = (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" ( (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_8c._1_3_" identifier . field_identifier)) >> number_literal) )))) ;) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" identifier = (subscript_expression "local_8c[1]" identifier [ number_literal ])) ;) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" identifier = identifier) ;) (if_statement "if (param_4[0x10] != '\0') goto LAB_00014a98;" if (parenthesized_expression "(param_4[0x10] != '\0')" ( (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014a98;" goto statement_identifier ;)) }) (else_clause "else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" else (compound_statement "{\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" { (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) })) }))) }) (else_clause "else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" else (compound_statement "{\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" { (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" { (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar18 << 0x10 | 0x100000" (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x8a;" (assignment_expression "local_8c[0] = 0x8a" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" identifier = identifier) ;) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" identifier = (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" { (if_statement "if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" if (parenthesized_expression "((uVar21 & 1) != 0)" ( (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" ( (binary_expression "uVar21 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" { (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" identifier = (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" identifier (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" ( (field_expression "local_80._0_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }" if (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          _local_80 = _local_80 | 0x8000;\n        }" { (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" identifier = (binary_expression "_local_80 | 0x8000" identifier | number_literal)) ;) })) (if_statement "if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" if (parenthesized_expression "((uVar21 & 4) != 0)" ( (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" { (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" identifier [ number_literal ]) = (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" ( (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_8c._1_3_" identifier . field_identifier)) >> number_literal) )))) ;) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" identifier = (subscript_expression "local_8c[1]" identifier [ number_literal ])) ;) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" identifier = identifier) ;) (labeled_statement "LAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" statement_identifier : (expression_statement "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" (assignment_expression "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" identifier = (call_expression "(undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" (parenthesized_expression "(undefined1  [4])" ( (subscript_expression "undefined1  [4]" identifier [ number_literal ]) )) (argument_list "((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" ( (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000" (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10" (cast_expression "(uint)CONCAT11(local_8c[0],uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(local_8c[0],uVar5)" identifier (argument_list "(local_8c[0],uVar5)" ( (subscript_expression "local_8c[0]" identifier [ number_literal ]) , identifier )))) << number_literal) | number_literal) )))) ;)) })) })) }))) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" identifier = (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" identifier = (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" identifier = (cast_expression "(uint *)(auStack_82 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_82 + -uVar21)" ( (binary_expression "auStack_82 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) ;) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" * identifier) = (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" * identifier) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (expression_statement "local_8c = (undefined1  [4])0x7f000000;" (assignment_expression "local_8c = (undefined1  [4])0x7f000000" identifier = (cast_expression "(undefined1  [4])0x7f000000" ( (type_descriptor "undefined1  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) number_literal)) ;) (expression_statement "uStack_85 = 0x18;" (assignment_expression "uStack_85 = 0x18" identifier = number_literal) ;) (expression_statement "bStack_86 = bVar18;" (assignment_expression "bStack_86 = bVar18" identifier = identifier) ;) (if_statement "if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }" { (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" identifier = (pointer_expression "*(uint *)(param_4 + 0x68)" * (cast_expression "(uint *)(param_4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x68)" ( (binary_expression "param_4 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" identifier = (pointer_expression "*(uint *)(param_4 + 0x6c)" * (cast_expression "(uint *)(param_4 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x6c)" ( (binary_expression "param_4 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "_local_80 = local_98;" (assignment_expression "_local_80 = local_98" identifier = identifier) ;) (expression_statement "local_7c = local_94;" (assignment_expression "local_7c = local_94" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') goto LAB_00014c58;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014c58;" goto statement_identifier ;)) (labeled_statement "LAB_00014adc:\n    cVar2 = param_4[0xe];" statement_identifier : (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;)) (expression_statement "local_84 = 0xb;" (assignment_expression "local_84 = 0xb" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (labeled_statement "joined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" statement_identifier : (if_statement "if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) }))) (if_statement "if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) }) (else_clause "else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" else (compound_statement "{\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" { (if_statement "if (cVar2 != '\0') goto LAB_00014adc;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014adc;" goto statement_identifier ;)) (labeled_statement "LAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" statement_identifier : (if_statement "if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" if (parenthesized_expression "(param_4[3] != '\0')" ( (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" { (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c)" identifier = (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x3c)" * (cast_expression "(undefined1 (*) [2])(param_4 + 0x3c)" ( (type_descriptor "undefined1 (*) [2]" type_identifier (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (goto_statement "goto joined_r0x00014cf4;" goto statement_identifier ;) }))) (if_statement "if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" if (parenthesized_expression "(param_4[5] != '\0')" ( (binary_expression "param_4[5] != '\0'" (subscript_expression "param_4[5]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" { (expression_statement "local_84 = 0xe;" (assignment_expression "local_84 = 0xe" identifier = number_literal) ;) (expression_statement "local_8c._0_2_ = 0x7f00;" (assignment_expression "local_8c._0_2_ = 0x7f00" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);" (assignment_expression "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38)" (field_expression "local_8c._2_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)(param_4 + 0x38)" * (cast_expression "(undefined2 *)(param_4 + 0x38)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x38)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x58);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x58)" * (cast_expression "(undefined4 *)(param_4 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x58)" ( (binary_expression "param_4 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "local_74 = *(undefined4 *)(param_4 + 0x5c);" (assignment_expression "local_74 = *(undefined4 *)(param_4 + 0x5c)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x5c)" * (cast_expression "(undefined4 *)(param_4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x5c)" ( (binary_expression "param_4 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" if (parenthesized_expression "(param_4[8] == '\0')" ( (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" { (if_statement "if (cVar23 == '\0') goto LAB_00015740;" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015740;" goto statement_identifier ;)) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);" (assignment_expression "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);" (assignment_expression "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" identifier (argument_list "(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" ( (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) , (field_expression "local_7c._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "local_84 = 0xd;" (assignment_expression "local_84 = 0xd" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" if (parenthesized_expression "(param_4[2] != '\0')" ( (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" if (parenthesized_expression "(param_4[0xb] != '\0')" ( (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }" if (parenthesized_expression "(param_4[0x10] != '\0')" ( (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 1;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 1;" (assignment_expression "auStack_82[0] = auStack_82[0] | 1" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 1" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) }))) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x60)" * (cast_expression "(undefined4 *)(param_4 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x60)" ( (binary_expression "param_4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" * (cast_expression "(undefined2 *)(param_4 + 0x3a)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3a)" ( (binary_expression "param_4 + 0x3a" identifier + number_literal) )))) , (pointer_expression "*(undefined2 *)(param_4 + 0x44)" * (cast_expression "(undefined2 *)(param_4 + 0x44)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x44)" ( (binary_expression "param_4 + 0x44" identifier + number_literal) )))) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar24)" ( (binary_expression "1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" statement_identifier : (if_statement "if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }" { (labeled_statement "LAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;" statement_identifier : (if_statement "if ((int)puVar24 < 4) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar24 < 4)" ( (binary_expression "(int)puVar24 < 4" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;))) (if_statement "if (0 < (int)param_3) goto LAB_00014b74;" if (parenthesized_expression "(0 < (int)param_3)" ( (binary_expression "0 < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014b74;" goto statement_identifier ;)) }) (else_clause "else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" else (compound_statement "{\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" { (if_statement "if ((int)puVar24 < 3) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar24 < 3)" ( (binary_expression "(int)puVar24 < 3" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;)) (if_statement "if ((int)param_3 < 0x20) goto LAB_00014b64;" if (parenthesized_expression "((int)param_3 < 0x20)" ( (binary_expression "(int)param_3 < 0x20" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014b64;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(param_4 + 0x4c);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x4c)" identifier = (pointer_expression "*(int *)(param_4 + 0x4c)" * (cast_expression "(int *)(param_4 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x4c)" ( (binary_expression "param_4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(ushort *)(param_4 + 0x3e);" (assignment_expression "uVar3 = *(ushort *)(param_4 + 0x3e)" identifier = (pointer_expression "*(ushort *)(param_4 + 0x3e)" * (cast_expression "(ushort *)(param_4 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = (undefined4 *)(param_2 + 0x20);" (assignment_expression "puVar14 = (undefined4 *)(param_2 + 0x20)" identifier = (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7140" identifier + number_literal) , (binary_expression "param_4 + 0x94" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7118" identifier + number_literal) , (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * identifier) , identifier ))) ;) (expression_statement "puVar22 = PTR_DAT_0002b2d8;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" if (parenthesized_expression "(*(short *)(param_4 + 0x40) != 0)" ( (binary_expression "*(short *)(param_4 + 0x40) != 0" (pointer_expression "*(short *)(param_4 + 0x40)" * (cast_expression "(short *)(param_4 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_0002b2d8 + -0x6018;" (assignment_expression "puVar15 = PTR_DAT_0002b2d8 + -0x6018" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal)) ;) (expression_statement "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;" (assignment_expression "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6ee4" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR_DAT_0002b2d8 + -0x7098;" (assignment_expression "puVar17 = PTR_DAT_0002b2d8 + -0x7098" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x7098" identifier + number_literal)) ;) (do_statement "do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));" do (compound_statement "{\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      }" { (expression_statement "local_94 = puVar14[1];" (assignment_expression "local_94 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "local_98 = puVar14[2];" (assignment_expression "local_98 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar16;" (assignment_expression "puVar20 = puVar16" identifier = identifier) ;) (if_statement "if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }" if (parenthesized_expression "(*param_4 != '\0')" ( (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar20 = puVar15;\n        }" { (expression_statement "puVar20 = puVar15;" (assignment_expression "puVar20 = puVar15" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" ( (binary_expression "puVar22 + -0x70e0" identifier + number_literal) , identifier , (pointer_expression "*puVar14" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" if (parenthesized_expression "(param_4[1] != '\0')" ( (binary_expression "param_4[1] != '\0'" (subscript_expression "param_4[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" { (expression_statement "local_98._2_2_ = (undefined2)puVar14[3];" (assignment_expression "local_98._2_2_ = (undefined2)puVar14[3]" (field_expression "local_98._2_2_" identifier . field_identifier) = (cast_expression "(undefined2)puVar14[3]" ( (type_descriptor "undefined2" type_identifier) ) (subscript_expression "puVar14[3]" identifier [ number_literal ]))) ;) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" (field_expression "local_98._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x11)" ( (binary_expression "(int)puVar14 + 0x11" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" identifier = (call_expression "CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" identifier (argument_list "(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" ( (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) , (field_expression "local_98._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uVar6 = local_98._0_2_;" (assignment_expression "uVar6 = local_98._0_2_" identifier = (field_expression "local_98._0_2_" identifier . field_identifier)) ;) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" (field_expression "local_98._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x13)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x13)" ( (binary_expression "(int)puVar14 + 0x13" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" identifier = (call_expression "CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x12)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x12)" ( (binary_expression "(int)puVar14 + 0x12" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._1_3_" identifier . field_identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" ( (binary_expression "puVar22 + -0x70b4" identifier + number_literal) , (subscript_expression "puVar14[3]" identifier [ number_literal ]) , identifier , (field_expression "local_98._0_2_" identifier . field_identifier) ))) ;) })) (if_statement "if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "(((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)))" ( (binary_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" (parenthesized_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2)))" ( (binary_expression "(uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))" (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * identifier) < (call_expression "(uint)((int)puVar14 + (0x34 - param_2))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar14 + (0x34 - param_2))" ( (binary_expression "(int)puVar14 + (0x34 - param_2)" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x34 - param_2)" ( (binary_expression "0x34 - param_2" number_literal - identifier) ))) )))) )) && (parenthesized_expression "((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" ( (comma_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17,iVar10)" ( identifier , identifier ))) , (binary_expression "1 < *(int *)(param_4 + 0x28)" number_literal < (pointer_expression "*(int *)(param_4 + 0x28)" * (cast_expression "(int *)(param_4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" { (expression_statement "iVar9 = 0xf;" (assignment_expression "iVar9 = 0xf" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40))" ( (binary_expression "iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40)" identifier < (binary_expression "(int)(uint)*(ushort *)(param_4 + 0x40)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(param_4 + 0x40)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) )) ;) })) (if_statement "if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" if (parenthesized_expression "(puVar24 == (undefined *)0x3)" ( (binary_expression "puVar24 == (undefined *)0x3" identifier == (cast_expression "(undefined *)0x3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" { (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014d34;" goto statement_identifier ;) })) (labeled_statement "LAB_00014b74:\n    local_c0 = param_4 + 0x94;" statement_identifier : (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;)) (if_statement "if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" if (parenthesized_expression "(((int)param_3 < 0x401) || (6 < (int)puVar24))" ( (binary_expression "((int)param_3 < 0x401) || (6 < (int)puVar24)" (parenthesized_expression "((int)param_3 < 0x401)" ( (binary_expression "(int)param_3 < 0x401" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(6 < (int)puVar24)" ( (binary_expression "6 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ff0" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);" (call_expression "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0002b314)" ( (pointer_expression "*(code *)PTR_hex2stderr_0002b314" * (cast_expression "(code *)PTR_hex2stderr_0002b314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3,1)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7058)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7058" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);" (call_expression "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1)" (parenthesized_expression "(*(code *)PTR_hex2stdout_0002b398)" ( (pointer_expression "*(code *)PTR_hex2stdout_0002b398" * (cast_expression "(code *)PTR_hex2stdout_0002b398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,0x400,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7020" identifier + number_literal) , identifier , identifier ))) ;) }))) })))) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;" statement_identifier : (if_statement "if (iVar9 != 0) goto LAB_00014fec;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014fec;" goto statement_identifier ;))) (do_statement "do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );" do (compound_statement "{\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();" (assignment_expression "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_0002b3c0" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_0002b3c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f44" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal )))) ;) }) (else_clause "else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" else (compound_statement "{\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_0002b2f0" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_0002b2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,puVar13,local_c4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_0002b338" * (cast_expression "(code *)PTR_set_scsi_pt_sense_0002b338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,local_6c,0x40)" ( identifier , identifier , number_literal ))) ;) (if_statement "if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }" { (if_statement "if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" if (parenthesized_expression "((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0'))" ( (binary_expression "(puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')" (parenthesized_expression "(puVar24 != (undefined *)0x0)" ( (binary_expression "puVar24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4[0x10] == '\0')" ( (binary_expression "param_4[0x10] == '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f30" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" else (compound_statement "{\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" { (expression_statement "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);" (call_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_out_0002b3c8" * (cast_expression "(code *)PTR_set_scsi_pt_data_out_0002b3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);" (assignment_expression "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_0002b36c)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_0002b36c" * (cast_expression "(code *)PTR_do_scsi_pt_0002b36c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" * (cast_expression "(undefined4 *)(param_4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x2c)" ( (binary_expression "param_4 + 0x2c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);" (assignment_expression "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_0002b328" * (cast_expression "(code *)PTR_sg_cmds_process_resp_0002b328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" ( identifier , identifier , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&local_9c" & identifier) )))) ;) (if_statement "if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }" { (expression_statement "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);" (assignment_expression "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_0002b3e0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_0002b3e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11)" ( identifier )))) ;) }) (else_clause "else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar12 == -2)" ( (binary_expression "iVar12 == -2" identifier == number_literal) )) (compound_statement "{\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" { (if_statement "if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" if (parenthesized_expression "(local_9c == 3)" ( (binary_expression "local_9c == 3" identifier == number_literal) )) (compound_statement "{\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);" (assignment_expression "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" identifier = (cast_expression "(undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_sense_len_0002b32c" * (cast_expression "(code *)PTR_get_scsi_pt_sense_len_0002b32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier ))))) ;) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)" ( (pointer_expression "*(code *)PTR_sg_get_sense_info_fld_0002b2f4" * (cast_expression "(code *)PTR_sg_get_sense_info_fld_0002b2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,puVar24,&local_98)" ( identifier , identifier , (pointer_expression "&local_98" & identifier) )))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f08)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f08" identifier + number_literal) ))) ;) (expression_statement "puVar22 = PTR_0002b2d4;" (assignment_expression "puVar22 = PTR_0002b2d4" identifier = identifier) ;) (if_statement "if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" if (parenthesized_expression "(param_4[9] == '\0')" ( (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e50)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e50" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }) (else_clause "else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" else (compound_statement "{\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" { (if_statement "if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" if (parenthesized_expression "(local_98 == 0 && local_94 == 0)" ( (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_94 == 0" identifier == number_literal)) )) (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ee0" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) ))) ;) }) (else_clause "else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" else (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ecc" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (binary_expression "(uint)(local_94 - 1 < local_94) + (local_98 - 1)" (call_expression "(uint)(local_94 - 1 < local_94)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_94 - 1 < local_94)" ( (binary_expression "local_94 - 1 < local_94" (binary_expression "local_94 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(local_98 - 1)" ( (binary_expression "local_98 - 1" identifier - number_literal) ))) ))) ;) }))) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)" ( (pointer_expression "*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" * (cast_expression "(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,puVar24,&local_98)" ( identifier , identifier , (pointer_expression "&local_98" & identifier) )))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (expression_statement "param_3 = puVar22;" (assignment_expression "param_3 = puVar22" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" { (if_statement "if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" if (parenthesized_expression "(local_98 == 0 && local_94 == 0)" ( (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_94 == 0" identifier == number_literal)) )) (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6eb8)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6eb8" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }) (else_clause "else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" else (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e7c" identifier + number_literal) , (binary_expression "puVar22 + 0x6794" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }))) })) }))) })) }) (else_clause "else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" else (compound_statement "{\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" { (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (if_statement "if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }" if (parenthesized_expression "((2 < local_9c) && (local_9c - 0x14U < 2))" ( (binary_expression "(2 < local_9c) && (local_9c - 0x14U < 2)" (parenthesized_expression "(2 < local_9c)" ( (binary_expression "2 < local_9c" number_literal < identifier) )) && (parenthesized_expression "(local_9c - 0x14U < 2)" ( (binary_expression "local_9c - 0x14U < 2" (binary_expression "local_9c - 0x14U" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n              iVar9 = 0;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) }))) })) }))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0002b360" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0002b360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "puVar13 = local_6c;" (assignment_expression "puVar13 = local_6c" identifier = identifier) ;) }))) (labeled_statement "LAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" { (while_statement "while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" { (if_statement "if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }" if (parenthesized_expression "(local_2c == *(int *)puVar7)" ( (binary_expression "local_2c == *(int *)puVar7" identifier == (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return iVar9;\n        }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b3a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b3a8" * (cast_expression "(code *)PTR___stack_chk_fail_0002b3a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00015740:\n        uVar11 = 0x20;" statement_identifier : (expression_statement "uVar11 = 0x20;" (assignment_expression "uVar11 = 0x20" identifier = number_literal) ;)) (if_statement "if (param_4[10] != '\0') break;" if (parenthesized_expression "(param_4[10] != '\0')" ( (binary_expression "param_4[10] != '\0'" (subscript_expression "param_4[10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x717c" identifier + number_literal) , (binary_expression "PTR_DAT_0002b2d8 + -0x50e8" identifier + number_literal) , identifier ))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) })) (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x42);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x42)" identifier = (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x42)" * (cast_expression "(undefined1 (*) [2])(param_4 + 0x42)" ( (type_descriptor "undefined1 (*) [2]" type_identifier (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) ))))) ;) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x60)" * (cast_expression "(undefined4 *)(param_4 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x60)" ( (binary_expression "param_4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" * (cast_expression "(undefined2 *)(param_4 + 0x3a)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3a)" ( (binary_expression "param_4 + 0x3a" identifier + number_literal) )))) , (pointer_expression "*(undefined2 *)(param_4 + 0x44)" * (cast_expression "(undefined2 *)(param_4 + 0x44)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x44)" ( (binary_expression "param_4 + 0x44" identifier + number_literal) )))) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar24)" ( (binary_expression "1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);" statement_identifier : (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" if (parenthesized_expression "(puVar24 != (undefined *)0x0)" ( (binary_expression "puVar24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" { (labeled_statement "LAB_00014fec:\n        local_c0 = param_4 + 0x94;" statement_identifier : (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6fc4" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "puVar24 = PTR_DAT_0002b2d8;" (assignment_expression "puVar24 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (compound_statement "{\n        iVar9 = 0;\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);" (assignment_expression "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" identifier = (cast_expression "(undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (parenthesized_expression "(*(code *)PTR_open64_0002b368)" ( (pointer_expression "*(code *)PTR_open64_0002b368" * (cast_expression "(code *)PTR_open64_0002b368" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f94" identifier + number_literal) , number_literal , number_literal ))))) ;) (if_statement "if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" if (parenthesized_expression "((int)puVar13 < 0)" ( (binary_expression "(int)puVar13 < 0" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }" { (expression_statement "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar13 = (undefined4 *)*puVar13;" (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24 + -0x6f94)" ( (binary_expression "puVar24 + -0x6f94" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier )))) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);" (assignment_expression "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" identifier = (call_expression "(*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_write_0002b370)" ( (pointer_expression "*(code *)PTR_write_0002b370" * (cast_expression "(code *)PTR_write_0002b370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }" { (expression_statement "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar22 = puVar24 + -0x6f94;" (assignment_expression "puVar22 = puVar24 + -0x6f94" identifier = (binary_expression "puVar24 + -0x6f94" identifier + number_literal)) ;) (expression_statement "puVar24 = (undefined *)*puVar14;" (assignment_expression "puVar24 = (undefined *)*puVar14" identifier = (cast_expression "(undefined *)*puVar14" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar22);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar22)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24)" ( identifier )))) ;) }) (else_clause "else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" else (compound_statement "{\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" { (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f84" identifier + number_literal) , identifier , (binary_expression "puVar24 + -0x6f94" identifier + number_literal) ))) ;) (if_statement "if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" if (parenthesized_expression "(param_4[9] == '\0')" ( (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }" { (expression_statement "(*(code *)PTR_putchar_0002b358)(10);" (call_expression "(*(code *)PTR_putchar_0002b358)(10)" (parenthesized_expression "(*(code *)PTR_putchar_0002b358)" ( (pointer_expression "*(code *)PTR_putchar_0002b358" * (cast_expression "(code *)PTR_putchar_0002b358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" else (compound_statement "{\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" { (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f6c" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) )))) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7158" identifier + number_literal) , (binary_expression "param_4 + 0x94" identifier + number_literal) ))) ;)) (expression_statement "puVar22 = PTR_DAT_0002b2d8 + -29000;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8 + -29000" identifier = (binary_expression "PTR_DAT_0002b2d8 + -29000" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);" do (compound_statement "{\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  }" { (expression_statement "puVar25 = (undefined4 *)((int)puVar14 + 1);" (assignment_expression "puVar25 = (undefined4 *)((int)puVar14 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar14 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22,*(undefined1 *)puVar14)" ( identifier , (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = puVar25;" (assignment_expression "puVar14 = puVar25" identifier = identifier) ;) }) while (parenthesized_expression "((undefined4 *)((int)puVar13 + local_c4) != puVar25)" ( (binary_expression "(undefined4 *)((int)puVar13 + local_c4) != puVar25" (cast_expression "(undefined4 *)((int)puVar13 + local_c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + local_c4)" ( (binary_expression "(int)puVar13 + local_c4" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6018)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal) ))) ;) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" identifier = (subscript_expression "param_4[9]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00014b48;" goto statement_identifier ;) })))
(translation_unit "int do_write_x(int sg_fd,void *dataoutp,int dout_len,opts_t *op)\n\n{\n  _Bool _Var1;\n  char cVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  uint8_t uVar5;\n  uint3 uVar6;\n  ushort uVar7;\n  undefined2 uVar8;\n  undefined *puVar9;\n  byte bVar19;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  byte bVar20;\n  uint8_t *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int iVar24;\n  char cVar25;\n  undefined *puVar26;\n  uint8_t *puVar27;\n  uint8_t *puVar28;\n  int local_c4;\n  char *local_c0;\n  int sense_cat;\n  uint64_t u;\n  uint8_t x_cdb [32];\n  uint8_t sense_b [64];\n  \n  puVar9 = PTR___stack_chk_guard_0002b3b8;\n  bVar20 = (byte)op->grpnum;\n  bVar19 = bVar20 & 0x1f;\n  puVar14 = x_cdb;\n  x_cdb[0] = '\0';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[4] = '\0';\n  x_cdb[5] = '\0';\n  x_cdb[6] = '\0';\n  x_cdb[7] = '\0';\n  x_cdb[8] = '\0';\n  x_cdb[9] = '\0';\n  x_cdb[10] = '\0';\n  x_cdb[0xb] = '\0';\n  x_cdb[0xc] = '\0';\n  x_cdb[0xd] = '\0';\n  x_cdb[0xe] = '\0';\n  x_cdb[0xf] = '\0';\n  x_cdb[0x10] = '\0';\n  x_cdb[0x11] = '\0';\n  x_cdb[0x12] = '\0';\n  x_cdb[0x13] = '\0';\n  x_cdb[0x14] = '\0';\n  x_cdb[0x15] = '\0';\n  x_cdb[0x16] = '\0';\n  x_cdb[0x17] = '\0';\n  x_cdb[0x18] = '\0';\n  x_cdb[0x19] = '\0';\n  x_cdb[0x1a] = '\0';\n  x_cdb[0x1b] = '\0';\n  x_cdb[0x1c] = '\0';\n  x_cdb[0x1d] = '\0';\n  x_cdb[0x1e] = '\0';\n  x_cdb[0x1f] = '\0';\n  iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8;\n  puVar26 = (undefined *)op->verbose;\n  cVar25 = op->do_scattered;\n  _Var1 = op->do_write_normal;\n  if (op->do_16 != false) {\n    if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }\n    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);\n    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;\n    if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }\n    u._0_4_ = op->numblocks;\n    local_c4 = 0x10;\n    puVar27 = x_cdb + 10;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n    puVar27 = x_cdb + 0xd;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;\n    goto LAB_00014b3c;\n  }\n  x_cdb[0] = '\x7f';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[7] = '\x18';\n  x_cdb[6] = bVar19;\n  if ((_Bool)cVar25 == false) {\n    u._0_4_ = *(uint *)&op->lba;\n    u._4_4_ = (uint)op->lba;\n    x_cdb._12_4_ = u._0_4_;\n    x_cdb._16_4_ = u._4_4_;\n    if (_Var1 == false) goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = op->dpo;\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\v';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n  }\n  else {\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }\n  x_cdb._20_4_ = op->ref_tag;\n  local_c4 = 0x20;\n  x_cdb._24_2_ = op->app_tag;\n  x_cdb._26_2_ = op->tag_mask;\n  x_cdb._28_4_ = op->numblocks;\nLAB_00014b3c:\n  if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar25 == '\0') {\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }\n  iVar10 = op->dry_run;\nLAB_00014d34:\n  if (iVar10 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = op->cdb_name;\n    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);\n  puVar23 = PTR_DAT_0002b2d8 + -29000;\n  puVar27 = puVar14;\n  do {\n    puVar28 = puVar27 + 1;\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);\n    puVar27 = puVar28;\n  } while (puVar14 + local_c4 != puVar28);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar25 = op->do_scattered;\n  goto LAB_00014b48;\n}\n\n" (function_definition "int do_write_x(int sg_fd,void *dataoutp,int dout_len,opts_t *op)\n\n{\n  _Bool _Var1;\n  char cVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  uint8_t uVar5;\n  uint3 uVar6;\n  ushort uVar7;\n  undefined2 uVar8;\n  undefined *puVar9;\n  byte bVar19;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  byte bVar20;\n  uint8_t *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int iVar24;\n  char cVar25;\n  undefined *puVar26;\n  uint8_t *puVar27;\n  uint8_t *puVar28;\n  int local_c4;\n  char *local_c0;\n  int sense_cat;\n  uint64_t u;\n  uint8_t x_cdb [32];\n  uint8_t sense_b [64];\n  \n  puVar9 = PTR___stack_chk_guard_0002b3b8;\n  bVar20 = (byte)op->grpnum;\n  bVar19 = bVar20 & 0x1f;\n  puVar14 = x_cdb;\n  x_cdb[0] = '\0';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[4] = '\0';\n  x_cdb[5] = '\0';\n  x_cdb[6] = '\0';\n  x_cdb[7] = '\0';\n  x_cdb[8] = '\0';\n  x_cdb[9] = '\0';\n  x_cdb[10] = '\0';\n  x_cdb[0xb] = '\0';\n  x_cdb[0xc] = '\0';\n  x_cdb[0xd] = '\0';\n  x_cdb[0xe] = '\0';\n  x_cdb[0xf] = '\0';\n  x_cdb[0x10] = '\0';\n  x_cdb[0x11] = '\0';\n  x_cdb[0x12] = '\0';\n  x_cdb[0x13] = '\0';\n  x_cdb[0x14] = '\0';\n  x_cdb[0x15] = '\0';\n  x_cdb[0x16] = '\0';\n  x_cdb[0x17] = '\0';\n  x_cdb[0x18] = '\0';\n  x_cdb[0x19] = '\0';\n  x_cdb[0x1a] = '\0';\n  x_cdb[0x1b] = '\0';\n  x_cdb[0x1c] = '\0';\n  x_cdb[0x1d] = '\0';\n  x_cdb[0x1e] = '\0';\n  x_cdb[0x1f] = '\0';\n  iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8;\n  puVar26 = (undefined *)op->verbose;\n  cVar25 = op->do_scattered;\n  _Var1 = op->do_write_normal;\n  if (op->do_16 != false) {\n    if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }\n    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);\n    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;\n    if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }\n    u._0_4_ = op->numblocks;\n    local_c4 = 0x10;\n    puVar27 = x_cdb + 10;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n    puVar27 = x_cdb + 0xd;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;\n    goto LAB_00014b3c;\n  }\n  x_cdb[0] = '\x7f';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[7] = '\x18';\n  x_cdb[6] = bVar19;\n  if ((_Bool)cVar25 == false) {\n    u._0_4_ = *(uint *)&op->lba;\n    u._4_4_ = (uint)op->lba;\n    x_cdb._12_4_ = u._0_4_;\n    x_cdb._16_4_ = u._4_4_;\n    if (_Var1 == false) goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = op->dpo;\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\v';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n  }\n  else {\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }\n  x_cdb._20_4_ = op->ref_tag;\n  local_c4 = 0x20;\n  x_cdb._24_2_ = op->app_tag;\n  x_cdb._26_2_ = op->tag_mask;\n  x_cdb._28_4_ = op->numblocks;\nLAB_00014b3c:\n  if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar25 == '\0') {\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }\n  iVar10 = op->dry_run;\nLAB_00014d34:\n  if (iVar10 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = op->cdb_name;\n    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);\n  puVar23 = PTR_DAT_0002b2d8 + -29000;\n  puVar27 = puVar14;\n  do {\n    puVar28 = puVar27 + 1;\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);\n    puVar27 = puVar28;\n  } while (puVar14 + local_c4 != puVar28);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar25 = op->do_scattered;\n  goto LAB_00014b48;\n}" primitive_type (function_declarator "do_write_x(int sg_fd,void *dataoutp,int dout_len,opts_t *op)" identifier (parameter_list "(int sg_fd,void *dataoutp,int dout_len,opts_t *op)" ( (parameter_declaration "int sg_fd" primitive_type identifier) , (parameter_declaration "void *dataoutp" primitive_type (pointer_declarator "*dataoutp" * identifier)) , (parameter_declaration "int dout_len" primitive_type identifier) , (parameter_declaration "opts_t *op" type_identifier (pointer_declarator "*op" * identifier)) ))) (compound_statement "{\n  _Bool _Var1;\n  char cVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  uint8_t uVar5;\n  uint3 uVar6;\n  ushort uVar7;\n  undefined2 uVar8;\n  undefined *puVar9;\n  byte bVar19;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  int iVar13;\n  byte bVar20;\n  uint8_t *puVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  undefined *puVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int iVar24;\n  char cVar25;\n  undefined *puVar26;\n  uint8_t *puVar27;\n  uint8_t *puVar28;\n  int local_c4;\n  char *local_c0;\n  int sense_cat;\n  uint64_t u;\n  uint8_t x_cdb [32];\n  uint8_t sense_b [64];\n  \n  puVar9 = PTR___stack_chk_guard_0002b3b8;\n  bVar20 = (byte)op->grpnum;\n  bVar19 = bVar20 & 0x1f;\n  puVar14 = x_cdb;\n  x_cdb[0] = '\0';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[4] = '\0';\n  x_cdb[5] = '\0';\n  x_cdb[6] = '\0';\n  x_cdb[7] = '\0';\n  x_cdb[8] = '\0';\n  x_cdb[9] = '\0';\n  x_cdb[10] = '\0';\n  x_cdb[0xb] = '\0';\n  x_cdb[0xc] = '\0';\n  x_cdb[0xd] = '\0';\n  x_cdb[0xe] = '\0';\n  x_cdb[0xf] = '\0';\n  x_cdb[0x10] = '\0';\n  x_cdb[0x11] = '\0';\n  x_cdb[0x12] = '\0';\n  x_cdb[0x13] = '\0';\n  x_cdb[0x14] = '\0';\n  x_cdb[0x15] = '\0';\n  x_cdb[0x16] = '\0';\n  x_cdb[0x17] = '\0';\n  x_cdb[0x18] = '\0';\n  x_cdb[0x19] = '\0';\n  x_cdb[0x1a] = '\0';\n  x_cdb[0x1b] = '\0';\n  x_cdb[0x1c] = '\0';\n  x_cdb[0x1d] = '\0';\n  x_cdb[0x1e] = '\0';\n  x_cdb[0x1f] = '\0';\n  iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8;\n  puVar26 = (undefined *)op->verbose;\n  cVar25 = op->do_scattered;\n  _Var1 = op->do_write_normal;\n  if (op->do_16 != false) {\n    if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }\n    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);\n    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;\n    if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }\n    u._0_4_ = op->numblocks;\n    local_c4 = 0x10;\n    puVar27 = x_cdb + 10;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n    puVar27 = x_cdb + 0xd;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;\n    goto LAB_00014b3c;\n  }\n  x_cdb[0] = '\x7f';\n  x_cdb[1] = '\0';\n  x_cdb[2] = '\0';\n  x_cdb[3] = '\0';\n  x_cdb[7] = '\x18';\n  x_cdb[6] = bVar19;\n  if ((_Bool)cVar25 == false) {\n    u._0_4_ = *(uint *)&op->lba;\n    u._4_4_ = (uint)op->lba;\n    x_cdb._12_4_ = u._0_4_;\n    x_cdb._16_4_ = u._4_4_;\n    if (_Var1 == false) goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = op->dpo;\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\v';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n  }\n  else {\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }\n  x_cdb._20_4_ = op->ref_tag;\n  local_c4 = 0x20;\n  x_cdb._24_2_ = op->app_tag;\n  x_cdb._26_2_ = op->tag_mask;\n  x_cdb._28_4_ = op->numblocks;\nLAB_00014b3c:\n  if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar25 == '\0') {\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }\n  iVar10 = op->dry_run;\nLAB_00014d34:\n  if (iVar10 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = op->cdb_name;\n    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);\n  puVar23 = PTR_DAT_0002b2d8 + -29000;\n  puVar27 = puVar14;\n  do {\n    puVar28 = puVar27 + 1;\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);\n    puVar27 = puVar28;\n  } while (puVar14 + local_c4 != puVar28);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar25 = op->do_scattered;\n  goto LAB_00014b48;\n}" { (declaration "_Bool _Var1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "uint8_t uVar5;" primitive_type identifier ;) (declaration "uint3 uVar6;" type_identifier identifier ;) (declaration "ushort uVar7;" type_identifier identifier ;) (declaration "undefined2 uVar8;" type_identifier identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "uint8_t *puVar14;" primitive_type (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "char cVar25;" primitive_type identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "uint8_t *puVar27;" primitive_type (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint8_t *puVar28;" primitive_type (pointer_declarator "*puVar28" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "int sense_cat;" primitive_type identifier ;) (declaration "uint64_t u;" primitive_type identifier ;) (declaration "uint8_t x_cdb [32];" primitive_type (array_declarator "x_cdb [32]" identifier [ number_literal ]) ;) (declaration "uint8_t sense_b [64];" primitive_type (array_declarator "sense_b [64]" identifier [ number_literal ]) ;) (expression_statement "puVar9 = PTR___stack_chk_guard_0002b3b8;" (assignment_expression "puVar9 = PTR___stack_chk_guard_0002b3b8" identifier = identifier) ;) (expression_statement "bVar20 = (byte)op->grpnum;" (assignment_expression "bVar20 = (byte)op->grpnum" identifier = (cast_expression "(byte)op->grpnum" ( (type_descriptor "byte" type_identifier) ) (field_expression "op->grpnum" identifier -> field_identifier))) ;) (expression_statement "bVar19 = bVar20 & 0x1f;" (assignment_expression "bVar19 = bVar20 & 0x1f" identifier = (binary_expression "bVar20 & 0x1f" identifier & number_literal)) ;) (expression_statement "puVar14 = x_cdb;" (assignment_expression "puVar14 = x_cdb" identifier = identifier) ;) (expression_statement "x_cdb[0] = '\0';" (assignment_expression "x_cdb[0] = '\0'" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[1] = '\0';" (assignment_expression "x_cdb[1] = '\0'" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[2] = '\0';" (assignment_expression "x_cdb[2] = '\0'" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[3] = '\0';" (assignment_expression "x_cdb[3] = '\0'" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[4] = '\0';" (assignment_expression "x_cdb[4] = '\0'" (subscript_expression "x_cdb[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[5] = '\0';" (assignment_expression "x_cdb[5] = '\0'" (subscript_expression "x_cdb[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[6] = '\0';" (assignment_expression "x_cdb[6] = '\0'" (subscript_expression "x_cdb[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[7] = '\0';" (assignment_expression "x_cdb[7] = '\0'" (subscript_expression "x_cdb[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\0';" (assignment_expression "x_cdb[9] = '\0'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = '\0';" (assignment_expression "x_cdb[10] = '\0'" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0xb] = '\0';" (assignment_expression "x_cdb[0xb] = '\0'" (subscript_expression "x_cdb[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0xc] = '\0';" (assignment_expression "x_cdb[0xc] = '\0'" (subscript_expression "x_cdb[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0xd] = '\0';" (assignment_expression "x_cdb[0xd] = '\0'" (subscript_expression "x_cdb[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0xe] = '\0';" (assignment_expression "x_cdb[0xe] = '\0'" (subscript_expression "x_cdb[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0xf] = '\0';" (assignment_expression "x_cdb[0xf] = '\0'" (subscript_expression "x_cdb[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x10] = '\0';" (assignment_expression "x_cdb[0x10] = '\0'" (subscript_expression "x_cdb[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x11] = '\0';" (assignment_expression "x_cdb[0x11] = '\0'" (subscript_expression "x_cdb[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x12] = '\0';" (assignment_expression "x_cdb[0x12] = '\0'" (subscript_expression "x_cdb[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x13] = '\0';" (assignment_expression "x_cdb[0x13] = '\0'" (subscript_expression "x_cdb[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x14] = '\0';" (assignment_expression "x_cdb[0x14] = '\0'" (subscript_expression "x_cdb[0x14]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x15] = '\0';" (assignment_expression "x_cdb[0x15] = '\0'" (subscript_expression "x_cdb[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x16] = '\0';" (assignment_expression "x_cdb[0x16] = '\0'" (subscript_expression "x_cdb[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x17] = '\0';" (assignment_expression "x_cdb[0x17] = '\0'" (subscript_expression "x_cdb[0x17]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x18] = '\0';" (assignment_expression "x_cdb[0x18] = '\0'" (subscript_expression "x_cdb[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x19] = '\0';" (assignment_expression "x_cdb[0x19] = '\0'" (subscript_expression "x_cdb[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1a] = '\0';" (assignment_expression "x_cdb[0x1a] = '\0'" (subscript_expression "x_cdb[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1b] = '\0';" (assignment_expression "x_cdb[0x1b] = '\0'" (subscript_expression "x_cdb[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1c] = '\0';" (assignment_expression "x_cdb[0x1c] = '\0'" (subscript_expression "x_cdb[0x1c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1d] = '\0';" (assignment_expression "x_cdb[0x1d] = '\0'" (subscript_expression "x_cdb[0x1d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1e] = '\0';" (assignment_expression "x_cdb[0x1e] = '\0'" (subscript_expression "x_cdb[0x1e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0x1f] = '\0';" (assignment_expression "x_cdb[0x1f] = '\0'" (subscript_expression "x_cdb[0x1f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8;" (assignment_expression "iVar24 = *(int *)PTR___stack_chk_guard_0002b3b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002b3b8" * (cast_expression "(int *)PTR___stack_chk_guard_0002b3b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar26 = (undefined *)op->verbose;" (assignment_expression "puVar26 = (undefined *)op->verbose" identifier = (cast_expression "(undefined *)op->verbose" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "op->verbose" identifier -> field_identifier))) ;) (expression_statement "cVar25 = op->do_scattered;" (assignment_expression "cVar25 = op->do_scattered" identifier = (field_expression "op->do_scattered" identifier -> field_identifier)) ;) (expression_statement "_Var1 = op->do_write_normal;" (assignment_expression "_Var1 = op->do_write_normal" identifier = (field_expression "op->do_write_normal" identifier -> field_identifier)) ;) (if_statement "if (op->do_16 != false) {\n    if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }\n    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);\n    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;\n    if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }\n    u._0_4_ = op->numblocks;\n    local_c4 = 0x10;\n    puVar27 = x_cdb + 10;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n    puVar27 = x_cdb + 0xd;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;\n    goto LAB_00014b3c;\n  }" if (parenthesized_expression "(op->do_16 != false)" ( (binary_expression "op->do_16 != false" (field_expression "op->do_16" identifier -> field_identifier) != false) )) (compound_statement "{\n    if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }\n    uVar8 = CONCAT11(bVar20,x_cdb[0xf]);\n    x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;\n    if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }\n    u._0_4_ = op->numblocks;\n    local_c4 = 0x10;\n    puVar27 = x_cdb + 10;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n    puVar27 = x_cdb + 0xd;\n    uVar22 = (uint)puVar27 & 3;\n    *(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;\n    goto LAB_00014b3c;\n  }" { (if_statement "if ((_Bool)cVar25 == false) {\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }" if (parenthesized_expression "((_Bool)cVar25 == false)" ( (binary_expression "(_Bool)cVar25 == false" (cast_expression "(_Bool)cVar25" ( (type_descriptor "_Bool" type_identifier) ) identifier) == false) )) (compound_statement "{\n      u._0_4_ = *(uint *)&op->lba;\n      u._4_4_ = (uint)op->lba;\n      puVar27 = x_cdb + 2;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n      puVar27 = x_cdb + 5;\n      uVar22 = (uint)puVar27 & 3;\n      *(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;\n      x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);\n      x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);\n      x_cdb._8_2_ = (undefined2)u._4_4_;\n    }" { (expression_statement "u._0_4_ = *(uint *)&op->lba;" (assignment_expression "u._0_4_ = *(uint *)&op->lba" (field_expression "u._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)&op->lba" * (cast_expression "(uint *)&op->lba" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&op->lba" & (field_expression "op->lba" identifier -> field_identifier))))) ;) (expression_statement "u._4_4_ = (uint)op->lba;" (assignment_expression "u._4_4_ = (uint)op->lba" (field_expression "u._4_4_" identifier . field_identifier) = (cast_expression "(uint)op->lba" ( (type_descriptor "uint" type_identifier) ) (field_expression "op->lba" identifier -> field_identifier))) ;) (expression_statement "puVar27 = x_cdb + 2;" (assignment_expression "puVar27 = x_cdb + 2" identifier = (binary_expression "x_cdb + 2" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "-1 << (4 - uVar22) * 8" number_literal << (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal))) | (binary_expression "u._0_4_ >> uVar22 * 8" (field_expression "u._0_4_" identifier . field_identifier) >> (binary_expression "uVar22 * 8" identifier * number_literal)))) ;) (expression_statement "puVar27 = x_cdb + 5;" (assignment_expression "puVar27 = x_cdb + 5" identifier = (binary_expression "x_cdb + 5" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n           *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n           u._0_4_ << (3 - uVar22) * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar22 + 1) * 8" number_literal >> (binary_expression "(uVar22 + 1) * 8" (parenthesized_expression "(uVar22 + 1)" ( (binary_expression "uVar22 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "u._0_4_ << (3 - uVar22) * 8" (field_expression "u._0_4_" identifier . field_identifier) << (binary_expression "(3 - uVar22) * 8" (parenthesized_expression "(3 - uVar22)" ( (binary_expression "3 - uVar22" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18);" (assignment_expression "x_cdb[6] = (uint8_t)(u._4_4_ >> 0x18)" (subscript_expression "x_cdb[6]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(u._4_4_ >> 0x18)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(u._4_4_ >> 0x18)" ( (binary_expression "u._4_4_ >> 0x18" (field_expression "u._4_4_" identifier . field_identifier) >> number_literal) )))) ;) (expression_statement "x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10);" (assignment_expression "x_cdb[7] = (uint8_t)(u._4_4_ >> 0x10)" (subscript_expression "x_cdb[7]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(u._4_4_ >> 0x10)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(u._4_4_ >> 0x10)" ( (binary_expression "u._4_4_ >> 0x10" (field_expression "u._4_4_" identifier . field_identifier) >> number_literal) )))) ;) (expression_statement "x_cdb._8_2_ = (undefined2)u._4_4_;" (assignment_expression "x_cdb._8_2_ = (undefined2)u._4_4_" (field_expression "x_cdb._8_2_" identifier . field_identifier) = (cast_expression "(undefined2)u._4_4_" ( (type_descriptor "undefined2" type_identifier) ) (field_expression "u._4_4_" identifier . field_identifier))) ;) })) (expression_statement "uVar8 = CONCAT11(bVar20,x_cdb[0xf]);" (assignment_expression "uVar8 = CONCAT11(bVar20,x_cdb[0xf])" identifier = (call_expression "CONCAT11(bVar20,x_cdb[0xf])" identifier (argument_list "(bVar20,x_cdb[0xf])" ( identifier , (subscript_expression "x_cdb[0xf]" identifier [ number_literal ]) )))) ;) (expression_statement "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff;" (assignment_expression "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "CONCAT22(x_cdb._12_2_,uVar8) & 0xffff1fff" (call_expression "CONCAT22(x_cdb._12_2_,uVar8)" identifier (argument_list "(x_cdb._12_2_,uVar8)" ( (field_expression "x_cdb._12_2_" identifier . field_identifier) , identifier ))) & number_literal)) ;) (if_statement "if (_Var1 == false) {\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }" if (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) (compound_statement "{\n      if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }\n      if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }\n    }" { (if_statement "if (op->do_atomic != false) {\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }" if (parenthesized_expression "(op->do_atomic != false)" ( (binary_expression "op->do_atomic != false" (field_expression "op->do_atomic" identifier -> field_identifier) != false) )) (compound_statement "{\n        if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }\n        x_cdb[0] = 0x9c;\n        uVar6 = (uint3)x_cdb._1_3_ >> 8;\n        x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);\n        x_cdb[2] = (char)uVar6;\n        x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n        local_c4 = 0x10;\n        x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);\n        x_cdb[0xb] = (uint8_t)op->atomic_boundary;\n        goto LAB_00014b3c;\n      }" { (if_statement "if (0xffff < op->numblocks) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "(0xffff < op->numblocks)" ( (binary_expression "0xffff < op->numblocks" number_literal < (field_expression "op->numblocks" identifier -> field_identifier)) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar10 = 1;\n          goto LAB_00014fa8;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x71b0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x71b0" identifier + number_literal) ))) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "bVar20 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar20 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }" { (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10 | 0x100000" (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (op->fua != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        }" { (expression_statement "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;" (assignment_expression "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "x_cdb[0] = 0x9c;" (assignment_expression "x_cdb[0] = 0x9c" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar6 = (uint3)x_cdb._1_3_ >> 8;" (assignment_expression "uVar6 = (uint3)x_cdb._1_3_ >> 8" identifier = (binary_expression "(uint3)x_cdb._1_3_ >> 8" (cast_expression "(uint3)x_cdb._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "x_cdb._1_3_" identifier . field_identifier)) >> number_literal)) ;) (expression_statement "x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10);" (assignment_expression "x_cdb[1] = (char)((uint3)x_cdb._1_3_ >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint3)x_cdb._1_3_ >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint3)x_cdb._1_3_ >> 0x10)" ( (binary_expression "(uint3)x_cdb._1_3_ >> 0x10" (cast_expression "(uint3)x_cdb._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "x_cdb._1_3_" identifier . field_identifier)) >> number_literal) )))) ;) (expression_statement "x_cdb[2] = (char)uVar6;" (assignment_expression "x_cdb[2] = (char)uVar6" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;" (assignment_expression "x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff" (call_expression "CONCAT22((short)op->numblocks,uVar8)" identifier (argument_list "((short)op->numblocks,uVar8)" ( (cast_expression "(short)op->numblocks" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "op->numblocks" identifier -> field_identifier)) , identifier ))) & number_literal)) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8);" (assignment_expression "x_cdb[10] = (uint8_t)(op->atomic_boundary >> 8)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(op->atomic_boundary >> 8)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(op->atomic_boundary >> 8)" ( (binary_expression "op->atomic_boundary >> 8" (field_expression "op->atomic_boundary" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "x_cdb[0xb] = (uint8_t)op->atomic_boundary;" (assignment_expression "x_cdb[0xb] = (uint8_t)op->atomic_boundary" (subscript_expression "x_cdb[0xb]" identifier [ number_literal ]) = (cast_expression "(uint8_t)op->atomic_boundary" ( (type_descriptor "uint8_t" primitive_type) ) (field_expression "op->atomic_boundary" identifier -> field_identifier))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (op->do_or == false) {\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }\n      else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }" if (parenthesized_expression "(op->do_or == false)" ( (binary_expression "op->do_or == false" (field_expression "op->do_or" identifier -> field_identifier) == false) )) (compound_statement "{\n        if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }\n        uVar6 = x_cdb._1_3_;\n        if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x93;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        uVar12 = x_cdb._0_4_;\n        x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n        uVar5 = x_cdb[1];\n        x_cdb._0_4_ = uVar12;\n        if (op->ndob != false) goto LAB_00014a98;\n      }" { (if_statement "if (op->do_same == false) {\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" if (parenthesized_expression "(op->do_same == false)" ( (binary_expression "op->do_same == false" (field_expression "op->do_same" identifier -> field_identifier) == false) )) (compound_statement "{\n          if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }\n          uVar12 = 0x10;\n          if (op->do_stream == false) goto LAB_00014c10;\n          bVar20 = (byte)((op->wrprotect & 7U) << 5);\n          if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n          if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }\n          x_cdb[0] = 0x9a;\n          x_cdb[1] = SUB31(x_cdb._1_3_,2);\n          x_cdb[2] = SUB31(x_cdb._1_3_,1);\n          x_cdb[3] = (uint8_t)x_cdb._1_3_;\n          x_cdb[10] = (uint8_t)(op->str_id >> 8);\n          x_cdb[0xb] = (uint8_t)op->str_id;\n          local_c4 = 0x10;\n          x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" { (if_statement "if ((_Bool)cVar25 != false) {\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }" if (parenthesized_expression "((_Bool)cVar25 != false)" ( (binary_expression "(_Bool)cVar25 != false" (cast_expression "(_Bool)cVar25" ( (type_descriptor "_Bool" type_identifier) ) identifier) != false) )) (compound_statement "{\n            bVar19 = (byte)((op->wrprotect & 7U) << 5);\n            if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }\n            x_cdb._2_2_ = (ushort)bVar19 << 8;\n            uVar7 = x_cdb._2_2_;\n            if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }\n            x_cdb[0] = 0x9f;\n            x_cdb[1] = '\x12';\n            x_cdb[2] = (char)(uVar7 >> 8);\n            x_cdb[3] = (char)uVar7;\n            uVar22 = op->dld;\n            if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }\n            u._0_4_ = op->numblocks;\n            local_c4 = 0x10;\n            x_cdb._4_2_ = op->scat_lbdof;\n            x_cdb._8_2_ = op->scat_num_lbard;\n            puVar27 = x_cdb + 10;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;\n            puVar27 = x_cdb + 0xd;\n            uVar22 = (uint)puVar27 & 3;\n            *(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;\n            goto LAB_00014e70;\n          }" { (expression_statement "bVar19 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar19 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->dpo != false) {\n              bVar19 = bVar19 | 0x10;\n            }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n              bVar19 = bVar19 | 0x10;\n            }" { (expression_statement "bVar19 = bVar19 | 0x10;" (assignment_expression "bVar19 = bVar19 | 0x10" identifier = (binary_expression "bVar19 | 0x10" identifier | number_literal)) ;) })) (expression_statement "x_cdb._2_2_ = (ushort)bVar19 << 8;" (assignment_expression "x_cdb._2_2_ = (ushort)bVar19 << 8" (field_expression "x_cdb._2_2_" identifier . field_identifier) = (binary_expression "(ushort)bVar19 << 8" (cast_expression "(ushort)bVar19" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "uVar7 = x_cdb._2_2_;" (assignment_expression "uVar7 = x_cdb._2_2_" identifier = (field_expression "x_cdb._2_2_" identifier . field_identifier)) ;) (if_statement "if (op->fua != false) {\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n              x_cdb._2_2_ = x_cdb._2_2_ | 0x800;\n              uVar7 = x_cdb._2_2_;\n            }" { (expression_statement "x_cdb._2_2_ = x_cdb._2_2_ | 0x800;" (assignment_expression "x_cdb._2_2_ = x_cdb._2_2_ | 0x800" (field_expression "x_cdb._2_2_" identifier . field_identifier) = (binary_expression "x_cdb._2_2_ | 0x800" (field_expression "x_cdb._2_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "uVar7 = x_cdb._2_2_;" (assignment_expression "uVar7 = x_cdb._2_2_" identifier = (field_expression "x_cdb._2_2_" identifier . field_identifier)) ;) })) (expression_statement "x_cdb[0] = 0x9f;" (assignment_expression "x_cdb[0] = 0x9f" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = '\x12';" (assignment_expression "x_cdb[1] = '\x12'" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (char_literal "'\x12'" ' escape_sequence ')) ;) (expression_statement "x_cdb[2] = (char)(uVar7 >> 8);" (assignment_expression "x_cdb[2] = (char)(uVar7 >> 8)" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)(uVar7 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar7 >> 8)" ( (binary_expression "uVar7 >> 8" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[3] = (char)uVar7;" (assignment_expression "x_cdb[3] = (char)uVar7" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar22 = op->dld;" (assignment_expression "uVar22 = op->dld" identifier = (field_expression "op->dld" identifier -> field_identifier)) ;) (if_statement "if (uVar22 != 0) {\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }\n              if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }\n              if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }\n            }" { (if_statement "if ((uVar22 & 1) != 0) {\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }" if (parenthesized_expression "((uVar22 & 1) != 0)" ( (binary_expression "(uVar22 & 1) != 0" (parenthesized_expression "(uVar22 & 1)" ( (binary_expression "uVar22 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;\n              }" { (expression_statement "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000;" (assignment_expression "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff |\n                               0x4000" (binary_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff" (call_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf]))" identifier (argument_list "(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf]))" ( (field_expression "x_cdb._12_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar20,x_cdb[0xf])" identifier (argument_list "(bVar20,x_cdb[0xf])" ( identifier , (subscript_expression "x_cdb[0xf]" identifier [ number_literal ]) ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar22 & 2) != 0) {\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }" if (parenthesized_expression "((uVar22 & 2) != 0)" ( (binary_expression "(uVar22 & 2) != 0" (parenthesized_expression "(uVar22 & 2)" ( (binary_expression "uVar22 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n              }" { (expression_statement "x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;" (assignment_expression "x_cdb._12_4_ = x_cdb._12_4_ | 0x8000" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "x_cdb._12_4_ | 0x8000" (field_expression "x_cdb._12_4_" identifier . field_identifier) | number_literal)) ;) })) (if_statement "if ((uVar22 & 4) != 0) {\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }" if (parenthesized_expression "((uVar22 & 4) != 0)" ( (binary_expression "(uVar22 & 4) != 0" (parenthesized_expression "(uVar22 & 4)" ( (binary_expression "uVar22 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                x_cdb._2_2_ = uVar7 | 0x100;\n                x_cdb[0] = 0x9f;\n                x_cdb[1] = '\x12';\n              }" { (expression_statement "x_cdb._2_2_ = uVar7 | 0x100;" (assignment_expression "x_cdb._2_2_ = uVar7 | 0x100" (field_expression "x_cdb._2_2_" identifier . field_identifier) = (binary_expression "uVar7 | 0x100" identifier | number_literal)) ;) (expression_statement "x_cdb[0] = 0x9f;" (assignment_expression "x_cdb[0] = 0x9f" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = '\x12';" (assignment_expression "x_cdb[1] = '\x12'" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (char_literal "'\x12'" ' escape_sequence ')) ;) })) })) (expression_statement "u._0_4_ = op->numblocks;" (assignment_expression "u._0_4_ = op->numblocks" (field_expression "u._0_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "x_cdb._4_2_ = op->scat_lbdof;" (assignment_expression "x_cdb._4_2_ = op->scat_lbdof" (field_expression "x_cdb._4_2_" identifier . field_identifier) = (field_expression "op->scat_lbdof" identifier -> field_identifier)) ;) (expression_statement "x_cdb._8_2_ = op->scat_num_lbard;" (assignment_expression "x_cdb._8_2_ = op->scat_num_lbard" (field_expression "x_cdb._8_2_" identifier . field_identifier) = (field_expression "op->scat_num_lbard" identifier -> field_identifier)) ;) (expression_statement "puVar27 = x_cdb + 10;" (assignment_expression "puVar27 = x_cdb + 10" identifier = (binary_expression "x_cdb + 10" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "-1 << (4 - uVar22) * 8" number_literal << (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal))) | (binary_expression "u._0_4_ >> uVar22 * 8" (field_expression "u._0_4_" identifier . field_identifier) >> (binary_expression "uVar22 * 8" identifier * number_literal)))) ;) (expression_statement "puVar27 = x_cdb + 0xd;" (assignment_expression "puVar27 = x_cdb + 0xd" identifier = (binary_expression "x_cdb + 0xd" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n                 *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n                 u._0_4_ << (3 - uVar22) * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar22 + 1) * 8" number_literal >> (binary_expression "(uVar22 + 1) * 8" (parenthesized_expression "(uVar22 + 1)" ( (binary_expression "uVar22 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "u._0_4_ << (3 - uVar22) * 8" (field_expression "u._0_4_" identifier . field_identifier) << (binary_expression "(3 - uVar22) * 8" (parenthesized_expression "(3 - uVar22)" ( (binary_expression "3 - uVar22" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "uVar12 = 0x10;" (assignment_expression "uVar12 = 0x10" identifier = number_literal) ;) (if_statement "if (op->do_stream == false) goto LAB_00014c10;" if (parenthesized_expression "(op->do_stream == false)" ( (binary_expression "op->do_stream == false" (field_expression "op->do_stream" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_00014c10;" goto statement_identifier ;)) (expression_statement "bVar20 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar20 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->dpo != false) {\n            bVar20 = bVar20 | 0x10;\n          }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n            bVar20 = bVar20 | 0x10;\n          }" { (expression_statement "bVar20 = bVar20 | 0x10;" (assignment_expression "bVar20 = bVar20 | 0x10" identifier = (binary_expression "bVar20 | 0x10" identifier | number_literal)) ;) })) (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (op->fua != false) {\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n            x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          }" { (expression_statement "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;" (assignment_expression "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "x_cdb[0] = 0x9a;" (assignment_expression "x_cdb[0] = 0x9a" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = SUB31(x_cdb._1_3_,2);" (assignment_expression "x_cdb[1] = SUB31(x_cdb._1_3_,2)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (call_expression "SUB31(x_cdb._1_3_,2)" identifier (argument_list "(x_cdb._1_3_,2)" ( (field_expression "x_cdb._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "x_cdb[2] = SUB31(x_cdb._1_3_,1);" (assignment_expression "x_cdb[2] = SUB31(x_cdb._1_3_,1)" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (call_expression "SUB31(x_cdb._1_3_,1)" identifier (argument_list "(x_cdb._1_3_,1)" ( (field_expression "x_cdb._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "x_cdb[3] = (uint8_t)x_cdb._1_3_;" (assignment_expression "x_cdb[3] = (uint8_t)x_cdb._1_3_" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (cast_expression "(uint8_t)x_cdb._1_3_" ( (type_descriptor "uint8_t" primitive_type) ) (field_expression "x_cdb._1_3_" identifier . field_identifier))) ;) (expression_statement "x_cdb[10] = (uint8_t)(op->str_id >> 8);" (assignment_expression "x_cdb[10] = (uint8_t)(op->str_id >> 8)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(op->str_id >> 8)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(op->str_id >> 8)" ( (binary_expression "op->str_id >> 8" (field_expression "op->str_id" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "x_cdb[0xb] = (uint8_t)op->str_id;" (assignment_expression "x_cdb[0xb] = (uint8_t)op->str_id" (subscript_expression "x_cdb[0xb]" identifier [ number_literal ]) = (cast_expression "(uint8_t)op->str_id" ( (type_descriptor "uint8_t" primitive_type) ) (field_expression "op->str_id" identifier -> field_identifier))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff;" (assignment_expression "x_cdb._12_4_ = CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "CONCAT22((short)op->numblocks,uVar8) & 0xffff1fff" (call_expression "CONCAT22((short)op->numblocks,uVar8)" identifier (argument_list "((short)op->numblocks,uVar8)" ( (cast_expression "(short)op->numblocks" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "op->numblocks" identifier -> field_identifier)) , identifier ))) & number_literal)) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "bVar20 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar20 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (op->do_anchor != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(op->do_anchor != false)" ( (binary_expression "op->do_anchor != false" (field_expression "op->do_anchor" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n        }" { (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10 | 0x100000" (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) (if_statement "if (op->do_unmap != false) {\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }" if (parenthesized_expression "(op->do_unmap != false)" ( (binary_expression "op->do_unmap != false" (field_expression "op->do_unmap" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n          uVar6 = x_cdb._1_3_;\n        }" { (expression_statement "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;" (assignment_expression "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) | number_literal)) ;) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) })) (expression_statement "x_cdb[0] = 0x93;" (assignment_expression "x_cdb[0] = 0x93" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = (char)(uVar6 >> 0x10);" (assignment_expression "x_cdb[1] = (char)(uVar6 >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[2] = (char)(uVar6 >> 8);" (assignment_expression "x_cdb[2] = (char)(uVar6 >> 8)" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 8)" ( (binary_expression "uVar6 >> 8" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[3] = (char)uVar6;" (assignment_expression "x_cdb[3] = (char)uVar6" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar12 = x_cdb._0_4_;" (assignment_expression "uVar12 = x_cdb._0_4_" identifier = (field_expression "x_cdb._0_4_" identifier . field_identifier)) ;) (expression_statement "x_cdb[1] = (uint8_t)(uVar6 >> 0x10);" (assignment_expression "x_cdb[1] = (uint8_t)(uVar6 >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(uVar6 >> 0x10)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = x_cdb[1];" (assignment_expression "uVar5 = x_cdb[1]" identifier = (subscript_expression "x_cdb[1]" identifier [ number_literal ])) ;) (expression_statement "x_cdb._0_4_ = uVar12;" (assignment_expression "x_cdb._0_4_ = uVar12" (field_expression "x_cdb._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (op->ndob != false) goto LAB_00014a98;" if (parenthesized_expression "(op->ndob != false)" ( (binary_expression "op->ndob != false" (field_expression "op->ndob" identifier -> field_identifier) != false) )) (goto_statement "goto LAB_00014a98;" goto statement_identifier ;)) }) (else_clause "else {\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }" else (compound_statement "{\n        bVar20 = (byte)((op->wrprotect & 7U) << 5);\n        x_cdb._1_3_ = (uint3)bVar20 << 0x10;\n        uVar6 = x_cdb._1_3_;\n        if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }\n        x_cdb[0] = 0x8b;\n        x_cdb[1] = (char)(uVar6 >> 0x10);\n        x_cdb[2] = (char)(uVar6 >> 8);\n        x_cdb[3] = (char)uVar6;\n        if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }\n      }" { (expression_statement "bVar20 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar20 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) (if_statement "if (op->dpo != false) {\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;\n          uVar6 = x_cdb._1_3_;\n        }" { (expression_statement "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar20 << 0x10 | 0x100000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar20 << 0x10 | 0x100000" (binary_expression "(uint3)bVar20 << 0x10" (cast_expression "(uint3)bVar20" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) })) (expression_statement "x_cdb[0] = 0x8b;" (assignment_expression "x_cdb[0] = 0x8b" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = (char)(uVar6 >> 0x10);" (assignment_expression "x_cdb[1] = (char)(uVar6 >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[2] = (char)(uVar6 >> 8);" (assignment_expression "x_cdb[2] = (char)(uVar6 >> 8)" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 8)" ( (binary_expression "uVar6 >> 8" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[3] = (char)uVar6;" (assignment_expression "x_cdb[3] = (char)uVar6" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (op->fua != false) {\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n          x_cdb._1_3_ = uVar6 | 0x80000;\n          x_cdb[0] = 0x8b;\n        }" { (expression_statement "x_cdb._1_3_ = uVar6 | 0x80000;" (assignment_expression "x_cdb._1_3_ = uVar6 | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "uVar6 | 0x80000" identifier | number_literal)) ;) (expression_statement "x_cdb[0] = 0x8b;" (assignment_expression "x_cdb[0] = 0x8b" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) })) }))) }) (else_clause "else {\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }" else (compound_statement "{\n      bVar19 = (byte)((op->wrprotect & 7U) << 5);\n      x_cdb._1_3_ = (uint3)bVar19 << 0x10;\n      if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }\n      uVar6 = x_cdb._1_3_;\n      if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }\n      x_cdb[0] = 0x8a;\n      x_cdb[1] = (char)(uVar6 >> 0x10);\n      x_cdb[2] = (char)(uVar6 >> 8);\n      x_cdb[3] = (char)uVar6;\n      uVar12 = x_cdb._0_4_;\n      uVar22 = op->dld;\n      if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }\n    }" { (expression_statement "bVar19 = (byte)((op->wrprotect & 7U) << 5);" (assignment_expression "bVar19 = (byte)((op->wrprotect & 7U) << 5)" identifier = (call_expression "(byte)((op->wrprotect & 7U) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (expression_statement "x_cdb._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar19 << 0x10" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (op->dpo != false) {\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n      }" { (expression_statement "x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "x_cdb._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) (if_statement "if (op->fua != false) {\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;\n        uVar6 = x_cdb._1_3_;\n      }" { (expression_statement "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000;" (assignment_expression "x_cdb._1_3_ = x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) = (binary_expression "x_cdb._1_3_ | 0x80000" (field_expression "x_cdb._1_3_" identifier . field_identifier) | number_literal)) ;) (expression_statement "uVar6 = x_cdb._1_3_;" (assignment_expression "uVar6 = x_cdb._1_3_" identifier = (field_expression "x_cdb._1_3_" identifier . field_identifier)) ;) })) (expression_statement "x_cdb[0] = 0x8a;" (assignment_expression "x_cdb[0] = 0x8a" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "x_cdb[1] = (char)(uVar6 >> 0x10);" (assignment_expression "x_cdb[1] = (char)(uVar6 >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[2] = (char)(uVar6 >> 8);" (assignment_expression "x_cdb[2] = (char)(uVar6 >> 8)" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (cast_expression "(char)(uVar6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 8)" ( (binary_expression "uVar6 >> 8" identifier >> number_literal) )))) ;) (expression_statement "x_cdb[3] = (char)uVar6;" (assignment_expression "x_cdb[3] = (char)uVar6" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar12 = x_cdb._0_4_;" (assignment_expression "uVar12 = x_cdb._0_4_" identifier = (field_expression "x_cdb._0_4_" identifier . field_identifier)) ;) (expression_statement "uVar22 = op->dld;" (assignment_expression "uVar22 = op->dld" identifier = (field_expression "op->dld" identifier -> field_identifier)) ;) (if_statement "if (uVar22 != 0) {\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }\n        if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }\n      }" { (if_statement "if ((uVar22 & 1) != 0) {\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }" if (parenthesized_expression "((uVar22 & 1) != 0)" ( (binary_expression "(uVar22 & 1) != 0" (parenthesized_expression "(uVar22 & 1)" ( (binary_expression "uVar22 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;\n        }" { (expression_statement "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000;" (assignment_expression "x_cdb._12_4_ = CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff | 0x4000" (binary_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf])) & 0xffff1fff" (call_expression "CONCAT22(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf]))" identifier (argument_list "(x_cdb._12_2_,CONCAT11(bVar20,x_cdb[0xf]))" ( (field_expression "x_cdb._12_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar20,x_cdb[0xf])" identifier (argument_list "(bVar20,x_cdb[0xf])" ( identifier , (subscript_expression "x_cdb[0xf]" identifier [ number_literal ]) ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar22 & 2) != 0) {\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }" if (parenthesized_expression "((uVar22 & 2) != 0)" ( (binary_expression "(uVar22 & 2) != 0" (parenthesized_expression "(uVar22 & 2)" ( (binary_expression "uVar22 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;\n        }" { (expression_statement "x_cdb._12_4_ = x_cdb._12_4_ | 0x8000;" (assignment_expression "x_cdb._12_4_ = x_cdb._12_4_ | 0x8000" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (binary_expression "x_cdb._12_4_ | 0x8000" (field_expression "x_cdb._12_4_" identifier . field_identifier) | number_literal)) ;) })) (if_statement "if ((uVar22 & 4) != 0) {\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }" if (parenthesized_expression "((uVar22 & 4) != 0)" ( (binary_expression "(uVar22 & 4) != 0" (parenthesized_expression "(uVar22 & 4)" ( (binary_expression "uVar22 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          x_cdb[1] = (uint8_t)(uVar6 >> 0x10);\n          uVar5 = x_cdb[1];\n          x_cdb._0_4_ = uVar12;\nLAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;\n        }" { (expression_statement "x_cdb[1] = (uint8_t)(uVar6 >> 0x10);" (assignment_expression "x_cdb[1] = (uint8_t)(uVar6 >> 0x10)" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (cast_expression "(uint8_t)(uVar6 >> 0x10)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = x_cdb[1];" (assignment_expression "uVar5 = x_cdb[1]" identifier = (subscript_expression "x_cdb[1]" identifier [ number_literal ])) ;) (expression_statement "x_cdb._0_4_ = uVar12;" (assignment_expression "x_cdb._0_4_ = uVar12" (field_expression "x_cdb._0_4_" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_00014a98:\n          x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;" statement_identifier : (expression_statement "x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000;" (assignment_expression "x_cdb._0_4_ = (uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000" (field_expression "x_cdb._0_4_" identifier . field_identifier) = (binary_expression "(uint)CONCAT11(x_cdb[0],uVar5) << 0x10 | 0x10000" (binary_expression "(uint)CONCAT11(x_cdb[0],uVar5) << 0x10" (cast_expression "(uint)CONCAT11(x_cdb[0],uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(x_cdb[0],uVar5)" identifier (argument_list "(x_cdb[0],uVar5)" ( (subscript_expression "x_cdb[0]" identifier [ number_literal ]) , identifier )))) << number_literal) | number_literal)) ;)) })) })) }))) (expression_statement "u._0_4_ = op->numblocks;" (assignment_expression "u._0_4_ = op->numblocks" (field_expression "u._0_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "puVar27 = x_cdb + 10;" (assignment_expression "puVar27 = x_cdb + 10" identifier = (binary_expression "x_cdb + 10" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8 | u._0_4_ >> uVar22 * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & -1 << (4 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "-1 << (4 - uVar22) * 8" number_literal << (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal))) | (binary_expression "u._0_4_ >> uVar22 * 8" (field_expression "u._0_4_" identifier . field_identifier) >> (binary_expression "uVar22 * 8" identifier * number_literal)))) ;) (expression_statement "puVar27 = x_cdb + 0xd;" (assignment_expression "puVar27 = x_cdb + 0xd" identifier = (binary_expression "x_cdb + 0xd" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)puVar27 & 3;" (assignment_expression "uVar22 = (uint)puVar27 & 3" identifier = (binary_expression "(uint)puVar27 & 3" (cast_expression "(uint)puVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8;" (assignment_expression "*(uint *)(puVar27 + -uVar22) =\n         *(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) = (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8 |\n         u._0_4_ << (3 - uVar22) * 8" (binary_expression "*(uint *)(puVar27 + -uVar22) & 0xffffffffU >> (uVar22 + 1) * 8" (pointer_expression "*(uint *)(puVar27 + -uVar22)" * (cast_expression "(uint *)(puVar27 + -uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -uVar22)" ( (binary_expression "puVar27 + -uVar22" identifier + (unary_expression "-uVar22" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar22 + 1) * 8" number_literal >> (binary_expression "(uVar22 + 1) * 8" (parenthesized_expression "(uVar22 + 1)" ( (binary_expression "uVar22 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "u._0_4_ << (3 - uVar22) * 8" (field_expression "u._0_4_" identifier . field_identifier) << (binary_expression "(3 - uVar22) * 8" (parenthesized_expression "(3 - uVar22)" ( (binary_expression "3 - uVar22" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (expression_statement "x_cdb[0] = '\x7f';" (assignment_expression "x_cdb[0] = '\x7f'" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "x_cdb[1] = '\0';" (assignment_expression "x_cdb[1] = '\0'" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[2] = '\0';" (assignment_expression "x_cdb[2] = '\0'" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[3] = '\0';" (assignment_expression "x_cdb[3] = '\0'" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[7] = '\x18';" (assignment_expression "x_cdb[7] = '\x18'" (subscript_expression "x_cdb[7]" identifier [ number_literal ]) = (char_literal "'\x18'" ' escape_sequence ')) ;) (expression_statement "x_cdb[6] = bVar19;" (assignment_expression "x_cdb[6] = bVar19" (subscript_expression "x_cdb[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((_Bool)cVar25 == false) {\n    u._0_4_ = *(uint *)&op->lba;\n    u._4_4_ = (uint)op->lba;\n    x_cdb._12_4_ = u._0_4_;\n    x_cdb._16_4_ = u._4_4_;\n    if (_Var1 == false) goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = op->dpo;\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\v';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n  }\n  else {\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }" if (parenthesized_expression "((_Bool)cVar25 == false)" ( (binary_expression "(_Bool)cVar25 == false" (cast_expression "(_Bool)cVar25" ( (type_descriptor "_Bool" type_identifier) ) identifier) == false) )) (compound_statement "{\n    u._0_4_ = *(uint *)&op->lba;\n    u._4_4_ = (uint)op->lba;\n    x_cdb._12_4_ = u._0_4_;\n    x_cdb._16_4_ = u._4_4_;\n    if (_Var1 == false) goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = op->dpo;\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\v';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n  }" { (expression_statement "u._0_4_ = *(uint *)&op->lba;" (assignment_expression "u._0_4_ = *(uint *)&op->lba" (field_expression "u._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)&op->lba" * (cast_expression "(uint *)&op->lba" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&op->lba" & (field_expression "op->lba" identifier -> field_identifier))))) ;) (expression_statement "u._4_4_ = (uint)op->lba;" (assignment_expression "u._4_4_ = (uint)op->lba" (field_expression "u._4_4_" identifier . field_identifier) = (cast_expression "(uint)op->lba" ( (type_descriptor "uint" type_identifier) ) (field_expression "op->lba" identifier -> field_identifier))) ;) (expression_statement "x_cdb._12_4_ = u._0_4_;" (assignment_expression "x_cdb._12_4_ = u._0_4_" (field_expression "x_cdb._12_4_" identifier . field_identifier) = (field_expression "u._0_4_" identifier . field_identifier)) ;) (expression_statement "x_cdb._16_4_ = u._4_4_;" (assignment_expression "x_cdb._16_4_ = u._4_4_" (field_expression "x_cdb._16_4_" identifier . field_identifier) = (field_expression "u._4_4_" identifier . field_identifier)) ;) (if_statement "if (_Var1 == false) goto LAB_00014c58;" if (parenthesized_expression "(_Var1 == false)" ( (binary_expression "_Var1 == false" identifier == false) )) (goto_statement "goto LAB_00014c58;" goto statement_identifier ;)) (labeled_statement "LAB_00014adc:\n    cVar2 = op->dpo;" statement_identifier : (expression_statement "cVar2 = op->dpo;" (assignment_expression "cVar2 = op->dpo" identifier = (field_expression "op->dpo" identifier -> field_identifier)) ;)) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\v';" (assignment_expression "x_cdb[9] = '\v'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\v'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (labeled_statement "joined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }" statement_identifier : (if_statement "if (cVar2 != '\0') {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }" { (expression_statement "x_cdb[10] = x_cdb[10] | 0x10;" (assignment_expression "x_cdb[10] = x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) }))) (if_statement "if (op->fua != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n      x_cdb[10] = x_cdb[10] | 8;\n    }" { (expression_statement "x_cdb[10] = x_cdb[10] | 8;" (assignment_expression "x_cdb[10] = x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) }) (else_clause "else {\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }" else (compound_statement "{\n    if (_Var1 != false) goto LAB_00014adc;\nLAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }\n    if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }\n    x_cdb[8] = '\0';\n    x_cdb[9] = '\r';\n    x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n    if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }\n    if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }\n    if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }\n  }" { (if_statement "if (_Var1 != false) goto LAB_00014adc;" if (parenthesized_expression "(_Var1 != false)" ( (binary_expression "_Var1 != false" identifier != false) )) (goto_statement "goto LAB_00014adc;" goto statement_identifier ;)) (labeled_statement "LAB_00014c58:\n    if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }" statement_identifier : (if_statement "if (op->do_atomic != false) {\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }" if (parenthesized_expression "(op->do_atomic != false)" ( (binary_expression "op->do_atomic != false" (field_expression "op->do_atomic" identifier -> field_identifier) != false) )) (compound_statement "{\n      x_cdb._4_2_ = op->atomic_boundary;\n      cVar2 = op->dpo;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0f';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      goto joined_r0x00014cf4;\n    }" { (expression_statement "x_cdb._4_2_ = op->atomic_boundary;" (assignment_expression "x_cdb._4_2_ = op->atomic_boundary" (field_expression "x_cdb._4_2_" identifier . field_identifier) = (field_expression "op->atomic_boundary" identifier -> field_identifier)) ;) (expression_statement "cVar2 = op->dpo;" (assignment_expression "cVar2 = op->dpo" identifier = (field_expression "op->dpo" identifier -> field_identifier)) ;) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\x0f';" (assignment_expression "x_cdb[9] = '\x0f'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\x0f'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (goto_statement "goto joined_r0x00014cf4;" goto statement_identifier ;) }))) (if_statement "if (op->do_or != false) {\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }" if (parenthesized_expression "(op->do_or != false)" ( (binary_expression "op->do_or != false" (field_expression "op->do_or" identifier -> field_identifier) != false) )) (compound_statement "{\n      uVar3 = op->bmop;\n      uVar4 = op->pgp;\n      x_cdb[2] = uVar3;\n      x_cdb[3] = uVar4;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x0e';\n      x_cdb[0] = '\x7f';\n      x_cdb[1] = '\0';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->orw_eog;\n      x_cdb._24_4_ = op->orw_nog;\n      local_c4 = 0x20;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014b3c;\n    }" { (expression_statement "uVar3 = op->bmop;" (assignment_expression "uVar3 = op->bmop" identifier = (field_expression "op->bmop" identifier -> field_identifier)) ;) (expression_statement "uVar4 = op->pgp;" (assignment_expression "uVar4 = op->pgp" identifier = (field_expression "op->pgp" identifier -> field_identifier)) ;) (expression_statement "x_cdb[2] = uVar3;" (assignment_expression "x_cdb[2] = uVar3" (subscript_expression "x_cdb[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "x_cdb[3] = uVar4;" (assignment_expression "x_cdb[3] = uVar4" (subscript_expression "x_cdb[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\x0e';" (assignment_expression "x_cdb[9] = '\x0e'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\x0e'" ' escape_sequence ')) ;) (expression_statement "x_cdb[0] = '\x7f';" (assignment_expression "x_cdb[0] = '\x7f'" (subscript_expression "x_cdb[0]" identifier [ number_literal ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "x_cdb[1] = '\0';" (assignment_expression "x_cdb[1] = '\0'" (subscript_expression "x_cdb[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 0x10;" (assignment_expression "x_cdb[10] = x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 8;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 8;" (assignment_expression "x_cdb[10] = x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "x_cdb._20_4_ = op->orw_eog;" (assignment_expression "x_cdb._20_4_ = op->orw_eog" (field_expression "x_cdb._20_4_" identifier . field_identifier) = (field_expression "op->orw_eog" identifier -> field_identifier)) ;) (expression_statement "x_cdb._24_4_ = op->orw_nog;" (assignment_expression "x_cdb._24_4_ = op->orw_nog" (field_expression "x_cdb._24_4_" identifier . field_identifier) = (field_expression "op->orw_nog" identifier -> field_identifier)) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "x_cdb._28_4_ = op->numblocks;" (assignment_expression "x_cdb._28_4_ = op->numblocks" (field_expression "x_cdb._28_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (op->do_same == false) {\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }" if (parenthesized_expression "(op->do_same == false)" ( (binary_expression "op->do_same == false" (field_expression "op->do_same" identifier -> field_identifier) == false) )) (compound_statement "{\n      if ((_Bool)cVar25 == false) goto LAB_00015740;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x11';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      local_c4 = 0x20;\n      x_cdb._12_2_ = op->scat_lbdof;\n      x_cdb._16_2_ = op->scat_num_lbard;\n      x_cdb._28_4_ = op->numblocks;\n      goto LAB_00014e70;\n    }" { (if_statement "if ((_Bool)cVar25 == false) goto LAB_00015740;" if (parenthesized_expression "((_Bool)cVar25 == false)" ( (binary_expression "(_Bool)cVar25 == false" (cast_expression "(_Bool)cVar25" ( (type_descriptor "_Bool" type_identifier) ) identifier) == false) )) (goto_statement "goto LAB_00015740;" goto statement_identifier ;)) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\x11';" (assignment_expression "x_cdb[9] = '\x11'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\x11'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 0x10;" (assignment_expression "x_cdb[10] = x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 8;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 8;" (assignment_expression "x_cdb[10] = x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "x_cdb._12_2_ = op->scat_lbdof;" (assignment_expression "x_cdb._12_2_ = op->scat_lbdof" (field_expression "x_cdb._12_2_" identifier . field_identifier) = (field_expression "op->scat_lbdof" identifier -> field_identifier)) ;) (expression_statement "x_cdb._16_2_ = op->scat_num_lbard;" (assignment_expression "x_cdb._16_2_ = op->scat_num_lbard" (field_expression "x_cdb._16_2_" identifier . field_identifier) = (field_expression "op->scat_num_lbard" identifier -> field_identifier)) ;) (expression_statement "x_cdb._28_4_ = op->numblocks;" (assignment_expression "x_cdb._28_4_ = op->numblocks" (field_expression "x_cdb._28_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\r';" (assignment_expression "x_cdb[9] = '\r'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->do_anchor != false) {\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }" if (parenthesized_expression "(op->do_anchor != false)" ( (binary_expression "op->do_anchor != false" (field_expression "op->do_anchor" identifier -> field_identifier) != false) )) (compound_statement "{\n      x_cdb[10] = x_cdb[10] | 0x10;\n    }" { (expression_statement "x_cdb[10] = x_cdb[10] | 0x10;" (assignment_expression "x_cdb[10] = x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (op->do_unmap != false) {\n      x_cdb[10] = x_cdb[10] | 8;\n    }" if (parenthesized_expression "(op->do_unmap != false)" ( (binary_expression "op->do_unmap != false" (field_expression "op->do_unmap" identifier -> field_identifier) != false) )) (compound_statement "{\n      x_cdb[10] = x_cdb[10] | 8;\n    }" { (expression_statement "x_cdb[10] = x_cdb[10] | 8;" (assignment_expression "x_cdb[10] = x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (op->ndob != false) {\n      x_cdb[10] = x_cdb[10] | 1;\n    }" if (parenthesized_expression "(op->ndob != false)" ( (binary_expression "op->ndob != false" (field_expression "op->ndob" identifier -> field_identifier) != false) )) (compound_statement "{\n      x_cdb[10] = x_cdb[10] | 1;\n    }" { (expression_statement "x_cdb[10] = x_cdb[10] | 1;" (assignment_expression "x_cdb[10] = x_cdb[10] | 1" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 1" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) }))) (expression_statement "x_cdb._20_4_ = op->ref_tag;" (assignment_expression "x_cdb._20_4_ = op->ref_tag" (field_expression "x_cdb._20_4_" identifier . field_identifier) = (field_expression "op->ref_tag" identifier -> field_identifier)) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "x_cdb._24_2_ = op->app_tag;" (assignment_expression "x_cdb._24_2_ = op->app_tag" (field_expression "x_cdb._24_2_" identifier . field_identifier) = (field_expression "op->app_tag" identifier -> field_identifier)) ;) (expression_statement "x_cdb._26_2_ = op->tag_mask;" (assignment_expression "x_cdb._26_2_ = op->tag_mask" (field_expression "x_cdb._26_2_" identifier . field_identifier) = (field_expression "op->tag_mask" identifier -> field_identifier)) ;) (expression_statement "x_cdb._28_4_ = op->numblocks;" (assignment_expression "x_cdb._28_4_ = op->numblocks" (field_expression "x_cdb._28_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (labeled_statement "LAB_00014b3c:\n  if (1 < (int)puVar26) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar26) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar26)" ( (binary_expression "1 < (int)puVar26" number_literal < (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014b48:\n  if (cVar25 == '\0') {\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }" statement_identifier : (if_statement "if (cVar25 == '\0') {\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }" if (parenthesized_expression "(cVar25 == '\0')" ( (binary_expression "cVar25 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;\n    if (0 < dout_len) goto LAB_00014b74;\n  }" { (labeled_statement "LAB_00014b64:\n    if ((int)puVar26 < 4) goto LAB_00014e7c;" statement_identifier : (if_statement "if ((int)puVar26 < 4) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar26 < 4)" ( (binary_expression "(int)puVar26 < 4" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;))) (if_statement "if (0 < dout_len) goto LAB_00014b74;" if (parenthesized_expression "(0 < dout_len)" ( (binary_expression "0 < dout_len" number_literal < identifier) )) (goto_statement "goto LAB_00014b74;" goto statement_identifier ;)) }) (else_clause "else {\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }" else (compound_statement "{\n    if ((int)puVar26 < 3) goto LAB_00014e7c;\n    if (dout_len < 0x20) goto LAB_00014b64;\n    puVar15 = (undefined4 *)((int)dataoutp + 0x20);\n    uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);\n    puVar23 = PTR_DAT_0002b2d8;\n    if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }\n    if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = op->cdb_name;\n    if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }\n  }" { (if_statement "if ((int)puVar26 < 3) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar26 < 3)" ( (binary_expression "(int)puVar26 < 3" (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;)) (if_statement "if (dout_len < 0x20) goto LAB_00014b64;" if (parenthesized_expression "(dout_len < 0x20)" ( (binary_expression "dout_len < 0x20" identifier < number_literal) )) (goto_statement "goto LAB_00014b64;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined4 *)((int)dataoutp + 0x20);" (assignment_expression "puVar15 = (undefined4 *)((int)dataoutp + 0x20)" identifier = (cast_expression "(undefined4 *)((int)dataoutp + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)dataoutp + 0x20)" ( (binary_expression "(int)dataoutp + 0x20" (cast_expression "(int)dataoutp" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = (uint)op->scat_lbdof * op->bs_pi_do;" (assignment_expression "uVar22 = (uint)op->scat_lbdof * op->bs_pi_do" identifier = (binary_expression "(uint)op->scat_lbdof * op->bs_pi_do" (cast_expression "(uint)op->scat_lbdof" ( (type_descriptor "uint" type_identifier) ) (field_expression "op->scat_lbdof" identifier -> field_identifier)) * (field_expression "op->bs_pi_do" identifier -> field_identifier))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7140,op->cdb_name,PTR_0002b2d4 + 0x6794,op->scat_num_lbard)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7140" identifier + number_literal) , (field_expression "op->cdb_name" identifier -> field_identifier) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (field_expression "op->scat_num_lbard" identifier -> field_identifier) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7118,uVar22,dout_len)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7118" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "puVar23 = PTR_DAT_0002b2d8;" (assignment_expression "puVar23 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (op->scat_num_lbard != 0) {\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }" if (parenthesized_expression "(op->scat_num_lbard != 0)" ( (binary_expression "op->scat_num_lbard != 0" (field_expression "op->scat_num_lbard" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar18 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar16 = PTR_DAT_0002b2d8 + -0x6018;" (assignment_expression "puVar16 = PTR_DAT_0002b2d8 + -0x6018" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR_DAT_0002b2d8 + -0x6ee4;" (assignment_expression "puVar17 = PTR_DAT_0002b2d8 + -0x6ee4" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6ee4" identifier + number_literal)) ;) (expression_statement "puVar18 = PTR_DAT_0002b2d8 + -0x7098;" (assignment_expression "puVar18 = PTR_DAT_0002b2d8 + -0x7098" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x7098" identifier + number_literal)) ;) (do_statement "do {\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      } while (iVar10 < (int)(uint)op->scat_num_lbard);" do (compound_statement "{\n        u._4_4_ = puVar15[1];\n        u._0_4_ = puVar15[2];\n        puVar21 = puVar17;\n        if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);\n        if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }\n        if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar15 = puVar15 + 8;\n      }" { (expression_statement "u._4_4_ = puVar15[1];" (assignment_expression "u._4_4_ = puVar15[1]" (field_expression "u._4_4_" identifier . field_identifier) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "u._0_4_ = puVar15[2];" (assignment_expression "u._0_4_ = puVar15[2]" (field_expression "u._0_4_" identifier . field_identifier) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;) (if_statement "if (op->do_16 != false) {\n          puVar21 = puVar16;\n        }" if (parenthesized_expression "(op->do_16 != false)" ( (binary_expression "op->do_16 != false" (field_expression "op->do_16" identifier -> field_identifier) != false) )) (compound_statement "{\n          puVar21 = puVar16;\n        }" { (expression_statement "puVar21 = puVar16;" (assignment_expression "puVar21 = puVar16" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23 + -0x70e0,iVar10,*puVar15,u._4_4_,u._0_4_,puVar21)" ( (binary_expression "puVar23 + -0x70e0" identifier + number_literal) , identifier , (pointer_expression "*puVar15" * identifier) , (field_expression "u._4_4_" identifier . field_identifier) , (field_expression "u._0_4_" identifier . field_identifier) , identifier ))) ;) (if_statement "if (op->do_32 != false) {\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }" if (parenthesized_expression "(op->do_32 != false)" ( (binary_expression "op->do_32 != false" (field_expression "op->do_32" identifier -> field_identifier) != false) )) (compound_statement "{\n          u._2_2_ = (undefined2)puVar15[3];\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);\n          uVar8 = u._0_2_;\n          u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);\n          u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);\n        }" { (expression_statement "u._2_2_ = (undefined2)puVar15[3];" (assignment_expression "u._2_2_ = (undefined2)puVar15[3]" (field_expression "u._2_2_" identifier . field_identifier) = (cast_expression "(undefined2)puVar15[3]" ( (type_descriptor "undefined2" type_identifier) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (expression_statement "u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_);" (assignment_expression "u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_)" (field_expression "u._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar15 + 0x11),u._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar15 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar15 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 0x11)" ( (binary_expression "(int)puVar15 + 0x11" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "u._2_2_" identifier . field_identifier) )))) ;) (expression_statement "u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_);" (assignment_expression "u._0_4_ = CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_)" (field_expression "u._0_4_" identifier . field_identifier) = (call_expression "CONCAT13(*(undefined1 *)(puVar15 + 4),u._1_3_)" identifier (argument_list "(*(undefined1 *)(puVar15 + 4),u._1_3_)" ( (pointer_expression "*(undefined1 *)(puVar15 + 4)" * (cast_expression "(undefined1 *)(puVar15 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) , (field_expression "u._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uVar8 = u._0_2_;" (assignment_expression "uVar8 = u._0_2_" identifier = (field_expression "u._0_2_" identifier . field_identifier)) ;) (expression_statement "u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_);" (assignment_expression "u._1_3_ = CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_)" (field_expression "u._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar15 + 0x13),u._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar15 + 0x13)" * (cast_expression "(undefined1 *)((int)puVar15 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 0x13)" ( (binary_expression "(int)puVar15 + 0x13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "u._2_2_" identifier . field_identifier) )))) ;) (expression_statement "u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_);" (assignment_expression "u._0_4_ = CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_)" (field_expression "u._0_4_" identifier . field_identifier) = (call_expression "CONCAT13(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_)" identifier (argument_list "(*(undefined1 *)((int)puVar15 + 0x12),u._1_3_)" ( (pointer_expression "*(undefined1 *)((int)puVar15 + 0x12)" * (cast_expression "(undefined1 *)((int)puVar15 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 0x12)" ( (binary_expression "(int)puVar15 + 0x12" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "u._1_3_" identifier . field_identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23 + -0x70b4,puVar15[3],uVar8,u._0_2_)" ( (binary_expression "puVar23 + -0x70b4" identifier + number_literal) , (subscript_expression "puVar15[3]" identifier [ number_literal ]) , identifier , (field_expression "u._0_2_" identifier . field_identifier) ))) ;) })) (if_statement "if ((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)) {\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "((uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict))" ( (binary_expression "(uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)" (parenthesized_expression "(uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp)))" ( (binary_expression "uVar22 < (uint)((int)puVar15 + (0x34 - (int)dataoutp))" identifier < (call_expression "(uint)((int)puVar15 + (0x34 - (int)dataoutp))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar15 + (0x34 - (int)dataoutp))" ( (binary_expression "(int)puVar15 + (0x34 - (int)dataoutp)" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x34 - (int)dataoutp)" ( (binary_expression "0x34 - (int)dataoutp" number_literal - (cast_expression "(int)dataoutp" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) && (parenthesized_expression "((*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict)" ( (comma_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10), 1 < op->strict" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar18,iVar10)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar18,iVar10)" ( identifier , identifier ))) , (binary_expression "1 < op->strict" number_literal < (field_expression "op->strict" identifier -> field_identifier))) ))) )) (compound_statement "{\n          iVar10 = 0xf;\n          goto LAB_00014fa8;\n        }" { (expression_statement "iVar10 = 0xf;" (assignment_expression "iVar10 = 0xf" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 8;" (assignment_expression "puVar15 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < (int)(uint)op->scat_num_lbard)" ( (binary_expression "iVar10 < (int)(uint)op->scat_num_lbard" identifier < (cast_expression "(int)(uint)op->scat_num_lbard" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)op->scat_num_lbard" ( (type_descriptor "uint" type_identifier) ) (field_expression "op->scat_num_lbard" identifier -> field_identifier)))) )) ;) })) (if_statement "if (puVar26 == (undefined *)0x3) {\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }" if (parenthesized_expression "(puVar26 == (undefined *)0x3)" ( (binary_expression "puVar26 == (undefined *)0x3" identifier == (cast_expression "(undefined *)0x3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = op->dry_run;\n      goto LAB_00014d34;\n    }" { (expression_statement "iVar10 = op->dry_run;" (assignment_expression "iVar10 = op->dry_run" identifier = (field_expression "op->dry_run" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00014d34;" goto statement_identifier ;) })) (labeled_statement "LAB_00014b74:\n    local_c0 = op->cdb_name;" statement_identifier : (expression_statement "local_c0 = op->cdb_name;" (assignment_expression "local_c0 = op->cdb_name" identifier = (field_expression "op->cdb_name" identifier -> field_identifier)) ;)) (if_statement "if ((dout_len < 0x401) || (6 < (int)puVar26)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }" if (parenthesized_expression "((dout_len < 0x401) || (6 < (int)puVar26))" ( (binary_expression "(dout_len < 0x401) || (6 < (int)puVar26)" (parenthesized_expression "(dout_len < 0x401)" ( (binary_expression "dout_len < 0x401" identifier < number_literal) )) || (parenthesized_expression "(6 < (int)puVar26)" ( (binary_expression "6 < (int)puVar26" number_literal < (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);\n      (*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,dout_len)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ff0,dout_len)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ff0" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1);" (call_expression "(*(code *)PTR_hex2stderr_0002b314)(dataoutp,dout_len,1)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0002b314)" ( (pointer_expression "*(code *)PTR_hex2stderr_0002b314" * (cast_expression "(code *)PTR_hex2stderr_0002b314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dataoutp,dout_len,1)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7058)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7058" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1);" (call_expression "(*(code *)PTR_hex2stdout_0002b398)(dataoutp,0x400,1)" (parenthesized_expression "(*(code *)PTR_hex2stdout_0002b398)" ( (pointer_expression "*(code *)PTR_hex2stdout_0002b398" * (cast_expression "(code *)PTR_hex2stdout_0002b398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dataoutp,0x400,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7020,dout_len,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7020" identifier + number_literal) , identifier , identifier ))) ;) }))) })))) (expression_statement "iVar10 = op->dry_run;" (assignment_expression "iVar10 = op->dry_run" identifier = (field_expression "op->dry_run" identifier -> field_identifier)) ;) (labeled_statement "LAB_00014d34:\n  if (iVar10 != 0) goto LAB_00014fec;" statement_identifier : (if_statement "if (iVar10 != 0) goto LAB_00014fec;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014fec;" goto statement_identifier ;))) (do_statement "do {\n    local_c0 = op->cdb_name;\n    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );" do (compound_statement "{\n    local_c0 = op->cdb_name;\n    iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_c0 = op->cdb_name;" (assignment_expression "local_c0 = op->cdb_name" identifier = (field_expression "op->cdb_name" identifier -> field_identifier)) ;) (expression_statement "iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();" (assignment_expression "iVar11 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_0002b3c0" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_0002b3c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f44" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);" (assignment_expression "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal )))) ;) }) (else_clause "else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }" else (compound_statement "{\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);\n      if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }\n      uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);\n      iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);\n      if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);\n      puVar14 = sense_b;\n    }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar11,puVar14,local_c4)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_0002b2f0" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_0002b2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,puVar14,local_c4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar11,sense_b,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_0002b338" * (cast_expression "(code *)PTR_set_scsi_pt_sense_0002b338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,sense_b,0x40)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (dout_len < 1) {\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }" if (parenthesized_expression "(dout_len < 1)" ( (binary_expression "dout_len < 1" identifier < number_literal) )) (compound_statement "{\n        if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }" { (if_statement "if ((puVar26 != (undefined *)0x0) && (op->ndob == false)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" if (parenthesized_expression "((puVar26 != (undefined *)0x0) && (op->ndob == false))" ( (binary_expression "(puVar26 != (undefined *)0x0) && (op->ndob == false)" (parenthesized_expression "(puVar26 != (undefined *)0x0)" ( (binary_expression "puVar26 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(op->ndob == false)" ( (binary_expression "op->ndob == false" (field_expression "op->ndob" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f30" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }" else (compound_statement "{\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);\n      }" { (expression_statement "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len);" (call_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar11,dataoutp,dout_len)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_out_0002b3c8" * (cast_expression "(code *)PTR_set_scsi_pt_data_out_0002b3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,dataoutp,dout_len)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26);" (assignment_expression "uVar12 = (*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_0002b36c)(iVar11,sg_fd,op->timeout,puVar26)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_0002b36c)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_0002b36c" * (cast_expression "(code *)PTR_do_scsi_pt_0002b36c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,sg_fd,op->timeout,puVar26)" ( identifier , identifier , (field_expression "op->timeout" identifier -> field_identifier) , identifier )))) ;) (expression_statement "iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat);" (assignment_expression "iVar13 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_0002b328" * (cast_expression "(code *)PTR_sg_cmds_process_resp_0002b328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11,local_c0,uVar12,0,sense_b,1,puVar26,&sense_cat)" ( identifier , identifier , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&sense_cat" & identifier) )))) ;) (if_statement "if (iVar13 == -1) {\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }\n      else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar13 == -1)" ( (binary_expression "iVar13 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);\n        iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);\n      }" { (expression_statement "uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11);" (assignment_expression "uVar12 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar11)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_0002b3e0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_0002b3e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12);" (assignment_expression "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar12)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(uVar12)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12)" ( identifier )))) ;) }) (else_clause "else {\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar10 = 0;\n        if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar13 == -2) {\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar13 == -2)" ( (binary_expression "iVar13 == -2" identifier == number_literal) )) (compound_statement "{\n          if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }\n        }" { (if_statement "if (sense_cat == 3) {\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }" if (parenthesized_expression "(sense_cat == 3)" ( (binary_expression "sense_cat == 3" identifier == number_literal) )) (compound_statement "{\n            u._4_4_ = 0;\n            u._0_4_ = 0;\n            puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);\n            iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);\n            iVar10 = sense_cat;\n            if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "u._4_4_ = 0;" (assignment_expression "u._4_4_ = 0" (field_expression "u._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "u._0_4_ = 0;" (assignment_expression "u._0_4_ = 0" (field_expression "u._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11);" (assignment_expression "puVar26 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11)" identifier = (cast_expression "(undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar11)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_sense_len_0002b32c" * (cast_expression "(code *)PTR_get_scsi_pt_sense_len_0002b32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u);" (assignment_expression "iVar13 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(sense_b,puVar26,&u)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)" ( (pointer_expression "*(code *)PTR_sg_get_sense_info_fld_0002b2f4" * (cast_expression "(code *)PTR_sg_get_sense_info_fld_0002b2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sense_b,puVar26,&u)" ( identifier , identifier , (pointer_expression "&u" & identifier) )))) ;) (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar23 = PTR_0002b2d4;\n              if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }\n            }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f08)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f08" identifier + number_literal) ))) ;) (expression_statement "puVar23 = PTR_0002b2d4;" (assignment_expression "puVar23 = PTR_0002b2d4" identifier = identifier) ;) (if_statement "if (op->do_scattered == false) {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }\n              else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }" if (parenthesized_expression "(op->do_scattered == false)" ( (binary_expression "op->do_scattered == false" (field_expression "op->do_scattered" identifier -> field_identifier) == false) )) (compound_statement "{\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar10 = sense_cat;\n              }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e50)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e50" identifier + number_literal) ))) ;) (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) }) (else_clause "else {\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }" else (compound_statement "{\n                if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }\n                iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);\n                iVar10 = sense_cat;\n                dout_len = (int)puVar23;\n                if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }\n              }" { (if_statement "if (u._0_4_ == 0 && u._4_4_ == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }" if (parenthesized_expression "(u._0_4_ == 0 && u._4_4_ == 0)" ( (binary_expression "u._0_4_ == 0 && u._4_4_ == 0" (binary_expression "u._0_4_ == 0" (field_expression "u._0_4_" identifier . field_identifier) == number_literal) && (binary_expression "u._4_4_ == 0" (field_expression "u._4_4_" identifier . field_identifier) == number_literal)) )) (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ee0" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) ))) ;) }) (else_clause "else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }" else (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1))" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ecc" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (binary_expression "(uint)(u._4_4_ - 1 < u._4_4_) + (u._0_4_ - 1)" (call_expression "(uint)(u._4_4_ - 1 < u._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(u._4_4_ - 1 < u._4_4_)" ( (binary_expression "u._4_4_ - 1 < u._4_4_" (binary_expression "u._4_4_ - 1" (field_expression "u._4_4_" identifier . field_identifier) - number_literal) < (field_expression "u._4_4_" identifier . field_identifier)) ))) + (parenthesized_expression "(u._0_4_ - 1)" ( (binary_expression "u._0_4_ - 1" (field_expression "u._0_4_" identifier . field_identifier) - number_literal) ))) ))) ;) }))) (expression_statement "iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u);" (assignment_expression "iVar13 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)(sense_b,puVar26,&u)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)" ( (pointer_expression "*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" * (cast_expression "(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sense_b,puVar26,&u)" ( identifier , identifier , (pointer_expression "&u" & identifier) )))) ;) (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) (expression_statement "dout_len = (int)puVar23;" (assignment_expression "dout_len = (int)puVar23" identifier = (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar13 != 0) {\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }\n                }" { (if_statement "if (u._0_4_ == 0 && u._4_4_ == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }" if (parenthesized_expression "(u._0_4_ == 0 && u._4_4_ == 0)" ( (binary_expression "u._0_4_ == 0 && u._4_4_ == 0" (binary_expression "u._0_4_ == 0" (field_expression "u._0_4_" identifier . field_identifier) == number_literal) && (binary_expression "u._4_4_ == 0" (field_expression "u._4_4_" identifier . field_identifier) == number_literal)) )) (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar10 = sense_cat;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6eb8)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6eb8" identifier + number_literal) ))) ;) (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) }) (else_clause "else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }" else (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);\n                    iVar10 = sense_cat;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e7c,puVar23 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e7c" identifier + number_literal) , (binary_expression "puVar23 + 0x6794" identifier + number_literal) ))) ;) (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) }))) })) }))) })) }) (else_clause "else {\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }" else (compound_statement "{\n            iVar10 = sense_cat;\n            if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }\n          }" { (expression_statement "iVar10 = sense_cat;" (assignment_expression "iVar10 = sense_cat" identifier = identifier) ;) (if_statement "if ((2 < sense_cat) && (sense_cat - 0x14U < 2)) {\n              iVar10 = 0;\n            }" if (parenthesized_expression "((2 < sense_cat) && (sense_cat - 0x14U < 2))" ( (binary_expression "(2 < sense_cat) && (sense_cat - 0x14U < 2)" (parenthesized_expression "(2 < sense_cat)" ( (binary_expression "2 < sense_cat" number_literal < identifier) )) && (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              iVar10 = 0;\n            }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) })) }))) })) }))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar11)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0002b360" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0002b360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar11)" ( identifier ))) ;) (expression_statement "puVar14 = sense_b;" (assignment_expression "puVar14 = sense_b" identifier = identifier) ;) }))) (labeled_statement "LAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }\n      x_cdb._4_2_ = op->str_id;\n      x_cdb[8] = '\0';\n      x_cdb[9] = '\x10';\n      x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);\n      if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }\n      if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }\n      x_cdb._20_4_ = op->ref_tag;\n      local_c4 = 0x20;\n      x_cdb._24_2_ = op->app_tag;\n      x_cdb._26_2_ = op->tag_mask;\n      x_cdb._28_4_ = op->numblocks;\nLAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar10 = op->dry_run;\n      if (iVar10 == 0) break;\n      if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }\n      puVar26 = PTR_DAT_0002b2d8;\n      if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }\n    }" { (while_statement "while( true ) {\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar12 = 0x20;\n        if (op->do_stream != false) break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);\n        iVar10 = 1;\n      }" { (if_statement "if (iVar24 == *(int *)puVar9) {\n          return iVar10;\n        }" if (parenthesized_expression "(iVar24 == *(int *)puVar9)" ( (binary_expression "iVar24 == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return iVar10;\n        }" { (return_statement "return iVar10;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b3a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b3a8" * (cast_expression "(code *)PTR___stack_chk_fail_0002b3a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00015740:\n        uVar12 = 0x20;" statement_identifier : (expression_statement "uVar12 = 0x20;" (assignment_expression "uVar12 = 0x20" identifier = number_literal) ;)) (if_statement "if (op->do_stream != false) break;" if (parenthesized_expression "(op->do_stream != false)" ( (binary_expression "op->do_stream != false" (field_expression "op->do_stream" identifier -> field_identifier) != false) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar12)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x717c" identifier + number_literal) , (binary_expression "PTR_DAT_0002b2d8 + -0x50e8" identifier + number_literal) , identifier ))) ;)) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "x_cdb._4_2_ = op->str_id;" (assignment_expression "x_cdb._4_2_ = op->str_id" (field_expression "x_cdb._4_2_" identifier . field_identifier) = (field_expression "op->str_id" identifier -> field_identifier)) ;) (expression_statement "x_cdb[8] = '\0';" (assignment_expression "x_cdb[8] = '\0'" (subscript_expression "x_cdb[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x_cdb[9] = '\x10';" (assignment_expression "x_cdb[9] = '\x10'" (subscript_expression "x_cdb[9]" identifier [ number_literal ]) = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5);" (assignment_expression "x_cdb[10] = (uint8_t)((op->wrprotect & 7U) << 5)" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((op->wrprotect & 7U) << 5)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((op->wrprotect & 7U) << 5)" ( (binary_expression "(op->wrprotect & 7U) << 5" (parenthesized_expression "(op->wrprotect & 7U)" ( (binary_expression "op->wrprotect & 7U" (field_expression "op->wrprotect" identifier -> field_identifier) & number_literal) )) << number_literal) )))) ;) (if_statement "if (op->dpo != false) {\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" if (parenthesized_expression "(op->dpo != false)" ( (binary_expression "op->dpo != false" (field_expression "op->dpo" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 0x10;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 0x10;" (assignment_expression "x_cdb[10] = x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 0x10" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (op->fua != false) {\n        x_cdb[10] = x_cdb[10] | 8;\n      }" if (parenthesized_expression "(op->fua != false)" ( (binary_expression "op->fua != false" (field_expression "op->fua" identifier -> field_identifier) != false) )) (compound_statement "{\n        x_cdb[10] = x_cdb[10] | 8;\n      }" { (expression_statement "x_cdb[10] = x_cdb[10] | 8;" (assignment_expression "x_cdb[10] = x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) = (binary_expression "x_cdb[10] | 8" (subscript_expression "x_cdb[10]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "x_cdb._20_4_ = op->ref_tag;" (assignment_expression "x_cdb._20_4_ = op->ref_tag" (field_expression "x_cdb._20_4_" identifier . field_identifier) = (field_expression "op->ref_tag" identifier -> field_identifier)) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "x_cdb._24_2_ = op->app_tag;" (assignment_expression "x_cdb._24_2_ = op->app_tag" (field_expression "x_cdb._24_2_" identifier . field_identifier) = (field_expression "op->app_tag" identifier -> field_identifier)) ;) (expression_statement "x_cdb._26_2_ = op->tag_mask;" (assignment_expression "x_cdb._26_2_ = op->tag_mask" (field_expression "x_cdb._26_2_" identifier . field_identifier) = (field_expression "op->tag_mask" identifier -> field_identifier)) ;) (expression_statement "x_cdb._28_4_ = op->numblocks;" (assignment_expression "x_cdb._28_4_ = op->numblocks" (field_expression "x_cdb._28_4_" identifier . field_identifier) = (field_expression "op->numblocks" identifier -> field_identifier)) ;) (labeled_statement "LAB_00014e70:\n      if (1 < (int)puVar26) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar26) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar26)" ( (binary_expression "1 < (int)puVar26" number_literal < (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014e7c:\n      iVar10 = op->dry_run;" statement_identifier : (expression_statement "iVar10 = op->dry_run;" (assignment_expression "iVar10 = op->dry_run" identifier = (field_expression "op->dry_run" identifier -> field_identifier)) ;)) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (puVar26 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }" if (parenthesized_expression "(puVar26 != (undefined *)0x0)" ( (binary_expression "puVar26 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00014fec:\n        local_c0 = op->cdb_name;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar10 = op->dry_run;\n      }" { (labeled_statement "LAB_00014fec:\n        local_c0 = op->cdb_name;" statement_identifier : (expression_statement "local_c0 = op->cdb_name;" (assignment_expression "local_c0 = op->cdb_name" identifier = (field_expression "op->cdb_name" identifier -> field_identifier)) ;)) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6fc4" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar10 = op->dry_run;" (assignment_expression "iVar10 = op->dry_run" identifier = (field_expression "op->dry_run" identifier -> field_identifier)) ;) })) (expression_statement "puVar26 = PTR_DAT_0002b2d8;" (assignment_expression "puVar26 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (iVar10 < 2) {\n        iVar10 = 0;\n      }\n      else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar10 < 2)" ( (binary_expression "iVar10 < 2" identifier < number_literal) )) (compound_statement "{\n        iVar10 = 0;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);" (assignment_expression "puVar14 = (uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" identifier = (cast_expression "(uint8_t *)(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (parenthesized_expression "(*(code *)PTR_open64_0002b368)" ( (pointer_expression "*(code *)PTR_open64_0002b368" * (cast_expression "(code *)PTR_open64_0002b368" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f94" identifier + number_literal) , number_literal , number_literal ))))) ;) (if_statement "if ((int)puVar14 < 0) {\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }\n        else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }" if (parenthesized_expression "((int)puVar14 < 0)" ( (binary_expression "(int)puVar14 < 0" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar14 = (uint8_t *)*puVar15;\n          (*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);\n          iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);\n        }" { (expression_statement "puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar14 = (uint8_t *)*puVar15;" (assignment_expression "puVar14 = (uint8_t *)*puVar15" identifier = (cast_expression "(uint8_t *)*puVar15" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar26 + -0x6f94)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar26 + -0x6f94)" ( (binary_expression "puVar26 + -0x6f94" identifier + number_literal) ))) ;) (expression_statement "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14);" (assignment_expression "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar14)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar14)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier )))) ;) }) (else_clause "else {\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);\n          if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }\n        }" { (expression_statement "iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len);" (assignment_expression "iVar10 = (*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len)" identifier = (call_expression "(*(code *)PTR_write_0002b370)(puVar14,dataoutp,dout_len)" (parenthesized_expression "(*(code *)PTR_write_0002b370)" ( (pointer_expression "*(code *)PTR_write_0002b370" * (cast_expression "(code *)PTR_write_0002b370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14,dataoutp,dout_len)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar23 = puVar26 + -0x6f94;\n            puVar26 = (undefined *)*puVar15;\n            (*(code *)PTR_perror_0002b3a0)(puVar23);\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);\n          }" { (expression_statement "puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar15 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar23 = puVar26 + -0x6f94;" (assignment_expression "puVar23 = puVar26 + -0x6f94" identifier = (binary_expression "puVar26 + -0x6f94" identifier + number_literal)) ;) (expression_statement "puVar26 = (undefined *)*puVar15;" (assignment_expression "puVar26 = (undefined *)*puVar15" identifier = (cast_expression "(undefined *)*puVar15" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar23);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar23)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar14);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar14)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26);" (assignment_expression "iVar10 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar26)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar26)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar26)" ( identifier )))) ;) }) (else_clause "else {\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }" else (compound_statement "{\n            (*(code *)PTR_close_0002b2fc)(puVar14);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);\n            if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }\n          }" { (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar14);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar14)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar14)" ( identifier ))) ;) (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94);" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94)" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f84,dout_len,puVar26 + -0x6f94)" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f84" identifier + number_literal) , identifier , (binary_expression "puVar26 + -0x6f94" identifier + number_literal) ))) ;) (if_statement "if (op->do_scattered == false) {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }" if (parenthesized_expression "(op->do_scattered == false)" ( (binary_expression "op->do_scattered == false" (field_expression "op->do_scattered" identifier -> field_identifier) == false) )) (compound_statement "{\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar10 = 0;\n            }" { (expression_statement "(*(code *)PTR_putchar_0002b358)(10);" (call_expression "(*(code *)PTR_putchar_0002b358)(10)" (parenthesized_expression "(*(code *)PTR_putchar_0002b358)" ( (pointer_expression "*(code *)PTR_putchar_0002b358" * (cast_expression "(code *)PTR_putchar_0002b358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }" else (compound_statement "{\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);\n              iVar10 = 0;\n            }" { (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard);" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard)" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f6c,op->scat_lbdof,PTR_0002b2d4 + 0x6794,\n                         op->scat_num_lbard)" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f6c" identifier + number_literal) , (field_expression "op->scat_lbdof" identifier -> field_identifier) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (field_expression "op->scat_num_lbard" identifier -> field_identifier) ))) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7158,op->cdb_name)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7158" identifier + number_literal) , (field_expression "op->cdb_name" identifier -> field_identifier) ))) ;)) (expression_statement "puVar23 = PTR_DAT_0002b2d8 + -29000;" (assignment_expression "puVar23 = PTR_DAT_0002b2d8 + -29000" identifier = (binary_expression "PTR_DAT_0002b2d8 + -29000" identifier + number_literal)) ;) (expression_statement "puVar27 = puVar14;" (assignment_expression "puVar27 = puVar14" identifier = identifier) ;) (do_statement "do {\n    puVar28 = puVar27 + 1;\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);\n    puVar27 = puVar28;\n  } while (puVar14 + local_c4 != puVar28);" do (compound_statement "{\n    puVar28 = puVar27 + 1;\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);\n    puVar27 = puVar28;\n  }" { (expression_statement "puVar28 = puVar27 + 1;" (assignment_expression "puVar28 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar23,*puVar27)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar23,*puVar27)" ( identifier , (pointer_expression "*puVar27" * identifier) ))) ;) (expression_statement "puVar27 = puVar28;" (assignment_expression "puVar27 = puVar28" identifier = identifier) ;) }) while (parenthesized_expression "(puVar14 + local_c4 != puVar28)" ( (binary_expression "puVar14 + local_c4 != puVar28" (binary_expression "puVar14 + local_c4" identifier + identifier) != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6018)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal) ))) ;) (expression_statement "cVar25 = op->do_scattered;" (assignment_expression "cVar25 = op->do_scattered" identifier = (field_expression "op->do_scattered" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00014b48;" goto statement_identifier ;) })))
(translation_unit "int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}\n\n" (function_definition "int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" primitive_type (function_declarator "FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auVar8 [4];" type_identifier (array_declarator "auVar8 [4]" identifier [ number_literal ]) ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "char cVar23;" primitive_type identifier ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "undefined1 local_8c [4];" type_identifier (array_declarator "local_8c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 local_88 [2];" type_identifier (array_declarator "local_88 [2]" identifier [ number_literal ]) ;) (declaration "byte bStack_86;" type_identifier identifier ;) (declaration "undefined1 uStack_85;" type_identifier identifier ;) (declaration "undefined2 local_84;" type_identifier identifier ;) (declaration "undefined1 auStack_82 [2];" type_identifier (array_declarator "auStack_82 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 local_80 [3];" type_identifier (array_declarator "local_80 [3]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_7d;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_6c [16];" type_identifier (array_declarator "local_6c [16]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar7 = PTR___stack_chk_guard_0002b3b8;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0002b3b8" identifier = identifier) ;) (expression_statement "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);" (assignment_expression "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c)" identifier = (binary_expression "(byte)*(undefined4 *)(param_4 + 0x1c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "bVar18 = bVar19 & 0x1f;" (assignment_expression "bVar18 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)local_8c;" (assignment_expression "puVar13 = (undefined4 *)local_8c" identifier = (cast_expression "(undefined4 *)local_8c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_8c = (undefined1  [4])0x0;" (assignment_expression "local_8c = (undefined1  [4])0x0" identifier = (cast_expression "(undefined1  [4])0x0" ( (type_descriptor "undefined1  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_88 = (undefined1  [2])0x0;" (assignment_expression "local_88 = (undefined1  [2])0x0" identifier = (cast_expression "(undefined1  [2])0x0" ( (type_descriptor "undefined1  [2]" type_identifier (abstract_array_declarator "[2]" [ number_literal ])) ) number_literal)) ;) (expression_statement "bStack_86 = 0;" (assignment_expression "bStack_86 = 0" identifier = number_literal) ;) (expression_statement "uStack_85 = 0;" (assignment_expression "uStack_85 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "auStack_82[0] = 0;" (assignment_expression "auStack_82[0] = 0" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_82[1] = 0;" (assignment_expression "auStack_82[1] = 0" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "_local_80 = 0;" (assignment_expression "_local_80 = 0" identifier = number_literal) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = *(undefined **)(param_4 + 0x30);" (assignment_expression "puVar24 = *(undefined **)(param_4 + 0x30)" identifier = (pointer_expression "*(undefined **)(param_4 + 0x30)" * (cast_expression "(undefined **)(param_4 + 0x30)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" identifier = (subscript_expression "param_4[9]" identifier [ number_literal ])) ;) (expression_statement "cVar2 = param_4[0xc];" (assignment_expression "cVar2 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0002b3b8" * (cast_expression "(int *)PTR___stack_chk_guard_0002b3b8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" if (parenthesized_expression "(*param_4 != '\0')" ( (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" { (if_statement "if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" { (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" identifier = (pointer_expression "*(uint *)(param_4 + 0x68)" * (cast_expression "(uint *)(param_4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x68)" ( (binary_expression "param_4 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" identifier = (pointer_expression "*(uint *)(param_4 + 0x6c)" * (cast_expression "(uint *)(param_4 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x6c)" ( (binary_expression "param_4 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = local_8c + 2;" (assignment_expression "puVar1 = local_8c + 2" identifier = (binary_expression "local_8c + 2" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_88 + 1;" (assignment_expression "puVar1 = local_88 + 1" identifier = (binary_expression "local_88 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "bStack_86 = (byte)(local_94 >> 0x18);" (assignment_expression "bStack_86 = (byte)(local_94 >> 0x18)" identifier = (call_expression "(byte)(local_94 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_94 >> 0x18)" ( (binary_expression "local_94 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uStack_85 = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_85 = (undefined1)(local_94 >> 0x10)" identifier = (call_expression "(undefined1)(local_94 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_94 >> 0x10)" ( (binary_expression "local_94 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined2)local_94;" (assignment_expression "local_84 = (undefined2)local_94" identifier = (cast_expression "(undefined2)local_94" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) })) (expression_statement "uVar6 = CONCAT11(bVar19,uStack_7d);" (assignment_expression "uVar6 = CONCAT11(bVar19,uStack_7d)" identifier = (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier )))) ;) (expression_statement "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,uVar6)" identifier (argument_list "(local_80._0_2_,uVar6)" ( (field_expression "local_80._0_2_" identifier . field_identifier) , identifier ))) & number_literal)) ;) (if_statement "if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }" { (if_statement "if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" if (parenthesized_expression "(param_4[3] != '\0')" ( (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" { (if_statement "if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "(0xffff < *(uint *)(param_4 + 0x54))" ( (binary_expression "0xffff < *(uint *)(param_4 + 0x54)" number_literal < (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x71b0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x71b0" identifier + number_literal) ))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x9c;" (assignment_expression "local_8c[0] = 0x9c" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6)" identifier (argument_list "((short)*(uint *)(param_4 + 0x54),uVar6)" ( (cast_expression "(short)*(uint *)(param_4 + 0x54)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) , identifier ))) & number_literal)) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" ( (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c)" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(undefined1)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x3c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" if (parenthesized_expression "(param_4[5] == '\0')" ( (binary_expression "param_4[5] == '\0'" (subscript_expression "param_4[5]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }" { (if_statement "if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" if (parenthesized_expression "(param_4[8] == '\0')" ( (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" { (if_statement "if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" if (parenthesized_expression "(cVar23 != '\0')" ( (binary_expression "cVar23 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" { (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              bVar18 = bVar18 | 0x10;\n            }" { (expression_statement "bVar18 = bVar18 | 0x10;" (assignment_expression "bVar18 = bVar18 | 0x10" identifier = (binary_expression "bVar18 | 0x10" identifier | number_literal)) ;) })) (expression_statement "local_8c._2_2_ = (ushort)bVar18 << 8;" (assignment_expression "local_8c._2_2_ = (ushort)bVar18 << 8" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "(ushort)bVar18 << 8" (cast_expression "(ushort)bVar18" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" { (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x800;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" identifier = (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" { (if_statement "if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" if (parenthesized_expression "((uVar21 & 1) != 0)" ( (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" ( (binary_expression "uVar21 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" { (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" identifier = (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" identifier (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" ( (field_expression "local_80._0_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }" if (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                _local_80 = _local_80 | 0x8000;\n              }" { (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" identifier = (binary_expression "_local_80 | 0x8000" identifier | number_literal)) ;) })) (if_statement "if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" if (parenthesized_expression "((uVar21 & 4) != 0)" ( (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" { (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x100;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" identifier . field_identifier) = (binary_expression "local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) })) })) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" identifier = (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);" (assignment_expression "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" identifier = (binary_expression "(undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" (parenthesized_expression "(undefined1  [2])" ( (subscript_expression "undefined1  [2]" identifier [ number_literal ]) )) * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "local_84 = *(undefined2 *)(param_4 + 0x40);" (assignment_expression "local_84 = *(undefined2 *)(param_4 + 0x40)" identifier = (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" identifier = (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" identifier = (cast_expression "(uint *)(auStack_82 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_82 + -uVar21)" ( (binary_expression "auStack_82 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) ;) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" * identifier) = (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" * identifier) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "uVar11 = 0x10;" (assignment_expression "uVar11 = 0x10" identifier = number_literal) ;) (if_statement "if (param_4[10] == '\0') goto LAB_00014c10;" if (parenthesized_expression "(param_4[10] == '\0')" ( (binary_expression "param_4[10] == '\0'" (subscript_expression "param_4[10]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014c10;" goto statement_identifier ;)) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            bVar19 = bVar19 | 0x10;\n          }" { (expression_statement "bVar19 = bVar19 | 0x10;" (assignment_expression "bVar19 = bVar19 | 0x10" identifier = (binary_expression "bVar19 | 0x10" identifier | number_literal)) ;) })) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x9a;" (assignment_expression "local_8c[0] = 0x9a" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" ( (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x42)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42)" (subscript_expression "auStack_82[1]" identifier [ number_literal ]) = (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(undefined1)" ( identifier )) * (cast_expression "(undefined2 *)(param_4 + 0x42)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" identifier = (binary_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6)" identifier (argument_list "((short)*(undefined4 *)(param_4 + 0x54),uVar6)" ( (cast_expression "(short)*(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) , identifier ))) & number_literal)) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[2] != '\0')" ( (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" if (parenthesized_expression "(param_4[0xb] != '\0')" ( (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x93;" (assignment_expression "local_8c[0] = 0x93" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" identifier = identifier) ;) (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" identifier [ number_literal ]) = (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" ( (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_8c._1_3_" identifier . field_identifier)) >> number_literal) )))) ;) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" identifier = (subscript_expression "local_8c[1]" identifier [ number_literal ])) ;) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" identifier = identifier) ;) (if_statement "if (param_4[0x10] != '\0') goto LAB_00014a98;" if (parenthesized_expression "(param_4[0x10] != '\0')" ( (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014a98;" goto statement_identifier ;)) }) (else_clause "else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" else (compound_statement "{\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" { (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" { (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) })) }))) }) (else_clause "else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" else (compound_statement "{\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" { (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" identifier = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal)) ;) (if_statement "if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" { (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "(uint3)bVar18 << 0x10 | 0x100000" (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" ( (type_descriptor "uint3" type_identifier) ) identifier) << number_literal) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" { (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) = (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" identifier . field_identifier) | number_literal)) ;) })) (expression_statement "local_8c[0] = 0x8a;" (assignment_expression "local_8c[0] = 0x8a" (subscript_expression "local_8c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" identifier = identifier) ;) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" identifier = (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" { (if_statement "if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" if (parenthesized_expression "((uVar21 & 1) != 0)" ( (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" ( (binary_expression "uVar21 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" { (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" identifier = (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" identifier (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" ( (field_expression "local_80._0_2_" identifier . field_identifier) , (call_expression "CONCAT11(bVar19,uStack_7d)" identifier (argument_list "(bVar19,uStack_7d)" ( identifier , identifier ))) ))) & number_literal) | number_literal)) ;) })) (if_statement "if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }" if (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          _local_80 = _local_80 | 0x8000;\n        }" { (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" identifier = (binary_expression "_local_80 | 0x8000" identifier | number_literal)) ;) })) (if_statement "if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" if (parenthesized_expression "((uVar21 & 4) != 0)" ( (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" ( (binary_expression "uVar21 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" { (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" identifier [ number_literal ]) = (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" ( (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" ( (type_descriptor "uint3" type_identifier) ) (field_expression "local_8c._1_3_" identifier . field_identifier)) >> number_literal) )))) ;) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" identifier = (subscript_expression "local_8c[1]" identifier [ number_literal ])) ;) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" identifier = identifier) ;) (labeled_statement "LAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" statement_identifier : (expression_statement "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" (assignment_expression "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" identifier = (call_expression "(undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" (parenthesized_expression "(undefined1  [4])" ( (subscript_expression "undefined1  [4]" identifier [ number_literal ]) )) (argument_list "((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" ( (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000" (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10" (cast_expression "(uint)CONCAT11(local_8c[0],uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11(local_8c[0],uVar5)" identifier (argument_list "(local_8c[0],uVar5)" ( (subscript_expression "local_8c[0]" identifier [ number_literal ]) , identifier )))) << number_literal) | number_literal) )))) ;)) })) })) }))) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" identifier = (pointer_expression "*(uint *)(param_4 + 0x54)" * (cast_expression "(uint *)(param_4 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" identifier = (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" identifier = (cast_expression "(uint *)(auStack_82 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_82 + -uVar21)" ( (binary_expression "auStack_82 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) ;) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" * identifier) = (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" * identifier) & (binary_expression "-1 << (4 - uVar21) * 8" number_literal << (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))) | (binary_expression "local_98 >> uVar21 * 8" identifier >> (binary_expression "uVar21 * 8" identifier * number_literal)))) ;) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (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 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) = (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" * (cast_expression "(uint *)(puVar1 + -uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + -uVar21)" ( (binary_expression "puVar1 + -uVar21" identifier + (unary_expression "-uVar21" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" number_literal >> (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "local_98 << (3 - uVar21) * 8" identifier << (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal)))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (expression_statement "local_8c = (undefined1  [4])0x7f000000;" (assignment_expression "local_8c = (undefined1  [4])0x7f000000" identifier = (cast_expression "(undefined1  [4])0x7f000000" ( (type_descriptor "undefined1  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) number_literal)) ;) (expression_statement "uStack_85 = 0x18;" (assignment_expression "uStack_85 = 0x18" identifier = number_literal) ;) (expression_statement "bStack_86 = bVar18;" (assignment_expression "bStack_86 = bVar18" identifier = identifier) ;) (if_statement "if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }" { (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" identifier = (pointer_expression "*(uint *)(param_4 + 0x68)" * (cast_expression "(uint *)(param_4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x68)" ( (binary_expression "param_4 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" identifier = (pointer_expression "*(uint *)(param_4 + 0x6c)" * (cast_expression "(uint *)(param_4 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x6c)" ( (binary_expression "param_4 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "_local_80 = local_98;" (assignment_expression "_local_80 = local_98" identifier = identifier) ;) (expression_statement "local_7c = local_94;" (assignment_expression "local_7c = local_94" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') goto LAB_00014c58;" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014c58;" goto statement_identifier ;)) (labeled_statement "LAB_00014adc:\n    cVar2 = param_4[0xe];" statement_identifier : (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;)) (expression_statement "local_84 = 0xb;" (assignment_expression "local_84 = 0xb" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (labeled_statement "joined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" statement_identifier : (if_statement "if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) }))) (if_statement "if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) }) (else_clause "else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" else (compound_statement "{\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" { (if_statement "if (cVar2 != '\0') goto LAB_00014adc;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00014adc;" goto statement_identifier ;)) (labeled_statement "LAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" statement_identifier : (if_statement "if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" if (parenthesized_expression "(param_4[3] != '\0')" ( (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" { (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c)" identifier = (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x3c)" * (cast_expression "(undefined1 (*) [2])(param_4 + 0x3c)" ( (type_descriptor "undefined1 (*) [2]" type_identifier (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (goto_statement "goto joined_r0x00014cf4;" goto statement_identifier ;) }))) (if_statement "if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" if (parenthesized_expression "(param_4[5] != '\0')" ( (binary_expression "param_4[5] != '\0'" (subscript_expression "param_4[5]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" { (expression_statement "local_84 = 0xe;" (assignment_expression "local_84 = 0xe" identifier = number_literal) ;) (expression_statement "local_8c._0_2_ = 0x7f00;" (assignment_expression "local_8c._0_2_ = 0x7f00" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);" (assignment_expression "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38)" (field_expression "local_8c._2_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)(param_4 + 0x38)" * (cast_expression "(undefined2 *)(param_4 + 0x38)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x38)" ( (binary_expression "param_4 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x58);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x58)" * (cast_expression "(undefined4 *)(param_4 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x58)" ( (binary_expression "param_4 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "local_74 = *(undefined4 *)(param_4 + 0x5c);" (assignment_expression "local_74 = *(undefined4 *)(param_4 + 0x5c)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x5c)" * (cast_expression "(undefined4 *)(param_4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x5c)" ( (binary_expression "param_4 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014b3c;" goto statement_identifier ;) })) (if_statement "if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" if (parenthesized_expression "(param_4[8] == '\0')" ( (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" { (if_statement "if (cVar23 == '\0') goto LAB_00015740;" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00015740;" goto statement_identifier ;)) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);" (assignment_expression "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);" (assignment_expression "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" identifier (argument_list "(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" ( (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) , (field_expression "local_7c._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014e70;" goto statement_identifier ;) })) (expression_statement "local_84 = 0xd;" (assignment_expression "local_84 = 0xd" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" if (parenthesized_expression "(param_4[2] != '\0')" ( (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" if (parenthesized_expression "(param_4[0xb] != '\0')" ( (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }" if (parenthesized_expression "(param_4[0x10] != '\0')" ( (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 1;\n    }" { (expression_statement "auStack_82[0] = auStack_82[0] | 1;" (assignment_expression "auStack_82[0] = auStack_82[0] | 1" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 1" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) }))) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x60)" * (cast_expression "(undefined4 *)(param_4 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x60)" ( (binary_expression "param_4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" * (cast_expression "(undefined2 *)(param_4 + 0x3a)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3a)" ( (binary_expression "param_4 + 0x3a" identifier + number_literal) )))) , (pointer_expression "*(undefined2 *)(param_4 + 0x44)" * (cast_expression "(undefined2 *)(param_4 + 0x44)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x44)" ( (binary_expression "param_4 + 0x44" identifier + number_literal) )))) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar24)" ( (binary_expression "1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" statement_identifier : (if_statement "if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" if (parenthesized_expression "(cVar23 == '\0')" ( (binary_expression "cVar23 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }" { (labeled_statement "LAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;" statement_identifier : (if_statement "if ((int)puVar24 < 4) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar24 < 4)" ( (binary_expression "(int)puVar24 < 4" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;))) (if_statement "if (0 < (int)param_3) goto LAB_00014b74;" if (parenthesized_expression "(0 < (int)param_3)" ( (binary_expression "0 < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014b74;" goto statement_identifier ;)) }) (else_clause "else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" else (compound_statement "{\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" { (if_statement "if ((int)puVar24 < 3) goto LAB_00014e7c;" if (parenthesized_expression "((int)puVar24 < 3)" ( (binary_expression "(int)puVar24 < 3" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014e7c;" goto statement_identifier ;)) (if_statement "if ((int)param_3 < 0x20) goto LAB_00014b64;" if (parenthesized_expression "((int)param_3 < 0x20)" ( (binary_expression "(int)param_3 < 0x20" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00014b64;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(param_4 + 0x4c);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x4c)" identifier = (pointer_expression "*(int *)(param_4 + 0x4c)" * (cast_expression "(int *)(param_4 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x4c)" ( (binary_expression "param_4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(ushort *)(param_4 + 0x3e);" (assignment_expression "uVar3 = *(ushort *)(param_4 + 0x3e)" identifier = (pointer_expression "*(ushort *)(param_4 + 0x3e)" * (cast_expression "(ushort *)(param_4 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = (undefined4 *)(param_2 + 0x20);" (assignment_expression "puVar14 = (undefined4 *)(param_2 + 0x20)" identifier = (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7140" identifier + number_literal) , (binary_expression "param_4 + 0x94" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7118" identifier + number_literal) , (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * identifier) , identifier ))) ;) (expression_statement "puVar22 = PTR_DAT_0002b2d8;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" if (parenthesized_expression "(*(short *)(param_4 + 0x40) != 0)" ( (binary_expression "*(short *)(param_4 + 0x40) != 0" (pointer_expression "*(short *)(param_4 + 0x40)" * (cast_expression "(short *)(param_4 + 0x40)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_0002b2d8 + -0x6018;" (assignment_expression "puVar15 = PTR_DAT_0002b2d8 + -0x6018" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal)) ;) (expression_statement "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;" (assignment_expression "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x6ee4" identifier + number_literal)) ;) (expression_statement "puVar17 = PTR_DAT_0002b2d8 + -0x7098;" (assignment_expression "puVar17 = PTR_DAT_0002b2d8 + -0x7098" identifier = (binary_expression "PTR_DAT_0002b2d8 + -0x7098" identifier + number_literal)) ;) (do_statement "do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));" do (compound_statement "{\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      }" { (expression_statement "local_94 = puVar14[1];" (assignment_expression "local_94 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "local_98 = puVar14[2];" (assignment_expression "local_98 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar16;" (assignment_expression "puVar20 = puVar16" identifier = identifier) ;) (if_statement "if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }" if (parenthesized_expression "(*param_4 != '\0')" ( (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar20 = puVar15;\n        }" { (expression_statement "puVar20 = puVar15;" (assignment_expression "puVar20 = puVar15" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" ( (binary_expression "puVar22 + -0x70e0" identifier + number_literal) , identifier , (pointer_expression "*puVar14" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" if (parenthesized_expression "(param_4[1] != '\0')" ( (binary_expression "param_4[1] != '\0'" (subscript_expression "param_4[1]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" { (expression_statement "local_98._2_2_ = (undefined2)puVar14[3];" (assignment_expression "local_98._2_2_ = (undefined2)puVar14[3]" (field_expression "local_98._2_2_" identifier . field_identifier) = (cast_expression "(undefined2)puVar14[3]" ( (type_descriptor "undefined2" type_identifier) ) (subscript_expression "puVar14[3]" identifier [ number_literal ]))) ;) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" (field_expression "local_98._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x11)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x11)" ( (binary_expression "(int)puVar14 + 0x11" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" identifier = (call_expression "CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" identifier (argument_list "(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" ( (pointer_expression "*(undefined1 *)(puVar14 + 4)" * (cast_expression "(undefined1 *)(puVar14 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) , (field_expression "local_98._1_3_" identifier . field_identifier) )))) ;) (expression_statement "uVar6 = local_98._0_2_;" (assignment_expression "uVar6 = local_98._0_2_" identifier = (field_expression "local_98._0_2_" identifier . field_identifier)) ;) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" (field_expression "local_98._1_3_" identifier . field_identifier) = (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x13)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x13)" ( (binary_expression "(int)puVar14 + 0x13" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._2_2_" identifier . field_identifier) )))) ;) (expression_statement "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" identifier = (call_expression "CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" identifier (argument_list "(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" ( (pointer_expression "*(undefined1 *)((int)puVar14 + 0x12)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x12)" ( (binary_expression "(int)puVar14 + 0x12" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (field_expression "local_98._1_3_" identifier . field_identifier) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" ( (binary_expression "puVar22 + -0x70b4" identifier + number_literal) , (subscript_expression "puVar14[3]" identifier [ number_literal ]) , identifier , (field_expression "local_98._0_2_" identifier . field_identifier) ))) ;) })) (if_statement "if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" if (parenthesized_expression "(((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)))" ( (binary_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" (parenthesized_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2)))" ( (binary_expression "(uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))" (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * identifier) < (call_expression "(uint)((int)puVar14 + (0x34 - param_2))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar14 + (0x34 - param_2))" ( (binary_expression "(int)puVar14 + (0x34 - param_2)" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0x34 - param_2)" ( (binary_expression "0x34 - param_2" number_literal - identifier) ))) )))) )) && (parenthesized_expression "((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" ( (comma_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar17,iVar10)" ( identifier , identifier ))) , (binary_expression "1 < *(int *)(param_4 + 0x28)" number_literal < (pointer_expression "*(int *)(param_4 + 0x28)" * (cast_expression "(int *)(param_4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))))) ))) )) (compound_statement "{\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" { (expression_statement "iVar9 = 0xf;" (assignment_expression "iVar9 = 0xf" identifier = number_literal) ;) (goto_statement "goto LAB_00014fa8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40))" ( (binary_expression "iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40)" identifier < (binary_expression "(int)(uint)*(ushort *)(param_4 + 0x40)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(param_4 + 0x40)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) ))))) )) ;) })) (if_statement "if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" if (parenthesized_expression "(puVar24 == (undefined *)0x3)" ( (binary_expression "puVar24 == (undefined *)0x3" identifier == (cast_expression "(undefined *)0x3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" { (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00014d34;" goto statement_identifier ;) })) (labeled_statement "LAB_00014b74:\n    local_c0 = param_4 + 0x94;" statement_identifier : (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;)) (if_statement "if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" if (parenthesized_expression "(((int)param_3 < 0x401) || (6 < (int)puVar24))" ( (binary_expression "((int)param_3 < 0x401) || (6 < (int)puVar24)" (parenthesized_expression "((int)param_3 < 0x401)" ( (binary_expression "(int)param_3 < 0x401" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(6 < (int)puVar24)" ( (binary_expression "6 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ff0" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);" (call_expression "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0002b314)" ( (pointer_expression "*(code *)PTR_hex2stderr_0002b314" * (cast_expression "(code *)PTR_hex2stderr_0002b314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3,1)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7058)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7058" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);" (call_expression "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1)" (parenthesized_expression "(*(code *)PTR_hex2stdout_0002b398)" ( (pointer_expression "*(code *)PTR_hex2stdout_0002b398" * (cast_expression "(code *)PTR_hex2stdout_0002b398" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,0x400,1)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7020" identifier + number_literal) , identifier , identifier ))) ;) }))) })))) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;" statement_identifier : (if_statement "if (iVar9 != 0) goto LAB_00014fec;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00014fec;" goto statement_identifier ;))) (do_statement "do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );" do (compound_statement "{\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;) (expression_statement "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();" (assignment_expression "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_0002b3c0" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_0002b3c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f44" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0xc)" ( number_literal )))) ;) }) (else_clause "else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" else (compound_statement "{\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_0002b2f0" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_0002b2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,puVar13,local_c4)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_0002b338" * (cast_expression "(code *)PTR_set_scsi_pt_sense_0002b338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,local_6c,0x40)" ( identifier , identifier , number_literal ))) ;) (if_statement "if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" if (parenthesized_expression "((int)param_3 < 1)" ( (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }" { (if_statement "if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" if (parenthesized_expression "((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0'))" ( (binary_expression "(puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')" (parenthesized_expression "(puVar24 != (undefined *)0x0)" ( (binary_expression "puVar24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_4[0x10] == '\0')" ( (binary_expression "param_4[0x10] == '\0'" (subscript_expression "param_4[0x10]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f30" identifier + number_literal) , identifier ))) ;) })) }) (else_clause "else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" else (compound_statement "{\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" { (expression_statement "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);" (call_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_out_0002b3c8" * (cast_expression "(code *)PTR_set_scsi_pt_data_out_0002b3c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);" (assignment_expression "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_0002b36c)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_0002b36c" * (cast_expression "(code *)PTR_do_scsi_pt_0002b36c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" * (cast_expression "(undefined4 *)(param_4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x2c)" ( (binary_expression "param_4 + 0x2c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);" (assignment_expression "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_0002b328" * (cast_expression "(code *)PTR_sg_cmds_process_resp_0002b328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" ( identifier , identifier , identifier , number_literal , identifier , number_literal , identifier , (pointer_expression "&local_9c" & identifier) )))) ;) (if_statement "if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar12 == -1)" ( (binary_expression "iVar12 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }" { (expression_statement "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);" (assignment_expression "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_0002b3e0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_0002b3e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11)" ( identifier )))) ;) }) (else_clause "else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar12 == -2)" ( (binary_expression "iVar12 == -2" identifier == number_literal) )) (compound_statement "{\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" { (if_statement "if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" if (parenthesized_expression "(local_9c == 3)" ( (binary_expression "local_9c == 3" identifier == number_literal) )) (compound_statement "{\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);" (assignment_expression "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" identifier = (cast_expression "(undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_sense_len_0002b32c" * (cast_expression "(code *)PTR_get_scsi_pt_sense_len_0002b32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier ))))) ;) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)" ( (pointer_expression "*(code *)PTR_sg_get_sense_info_fld_0002b2f4" * (cast_expression "(code *)PTR_sg_get_sense_info_fld_0002b2f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,puVar24,&local_98)" ( identifier , identifier , (pointer_expression "&local_98" & identifier) )))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f08)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f08" identifier + number_literal) ))) ;) (expression_statement "puVar22 = PTR_0002b2d4;" (assignment_expression "puVar22 = PTR_0002b2d4" identifier = identifier) ;) (if_statement "if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" if (parenthesized_expression "(param_4[9] == '\0')" ( (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e50)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e50" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }) (else_clause "else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" else (compound_statement "{\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" { (if_statement "if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" if (parenthesized_expression "(local_98 == 0 && local_94 == 0)" ( (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_94 == 0" identifier == number_literal)) )) (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ee0" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) ))) ;) }) (else_clause "else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" else (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6ecc" identifier + number_literal) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (binary_expression "(uint)(local_94 - 1 < local_94) + (local_98 - 1)" (call_expression "(uint)(local_94 - 1 < local_94)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_94 - 1 < local_94)" ( (binary_expression "local_94 - 1 < local_94" (binary_expression "local_94 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(local_98 - 1)" ( (binary_expression "local_98 - 1" identifier - number_literal) ))) ))) ;) }))) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" identifier = (call_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)" ( (pointer_expression "*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" * (cast_expression "(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c,puVar24,&local_98)" ( identifier , identifier , (pointer_expression "&local_98" & identifier) )))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (expression_statement "param_3 = puVar22;" (assignment_expression "param_3 = puVar22" identifier = identifier) ;) (if_statement "if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" { (if_statement "if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" if (parenthesized_expression "(local_98 == 0 && local_94 == 0)" ( (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_94 == 0" identifier == number_literal)) )) (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6eb8)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6eb8" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }) (else_clause "else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" else (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" { (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6e7c" identifier + number_literal) , (binary_expression "puVar22 + 0x6794" identifier + number_literal) ))) ;) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) }))) })) }))) })) }) (else_clause "else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" else (compound_statement "{\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" { (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" identifier = identifier) ;) (if_statement "if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }" if (parenthesized_expression "((2 < local_9c) && (local_9c - 0x14U < 2))" ( (binary_expression "(2 < local_9c) && (local_9c - 0x14U < 2)" (parenthesized_expression "(2 < local_9c)" ( (binary_expression "2 < local_9c" number_literal < identifier) )) && (parenthesized_expression "(local_9c - 0x14U < 2)" ( (binary_expression "local_9c - 0x14U < 2" (binary_expression "local_9c - 0x14U" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n              iVar9 = 0;\n            }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) }))) })) }))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0002b360" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0002b360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10)" ( identifier ))) ;) (expression_statement "puVar13 = local_6c;" (assignment_expression "puVar13 = local_6c" identifier = identifier) ;) }))) (labeled_statement "LAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" { (while_statement "while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" { (if_statement "if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }" if (parenthesized_expression "(local_2c == *(int *)puVar7)" ( (binary_expression "local_2c == *(int *)puVar7" identifier == (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return iVar9;\n        }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b3a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002b3a8" * (cast_expression "(code *)PTR___stack_chk_fail_0002b3a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00015740:\n        uVar11 = 0x20;" statement_identifier : (expression_statement "uVar11 = 0x20;" (assignment_expression "uVar11 = 0x20" identifier = number_literal) ;)) (if_statement "if (param_4[10] != '\0') break;" if (parenthesized_expression "(param_4[10] != '\0')" ( (binary_expression "param_4[10] != '\0'" (subscript_expression "param_4[10]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x717c" identifier + number_literal) , (binary_expression "PTR_DAT_0002b2d8 + -0x50e8" identifier + number_literal) , identifier ))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) })) (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x42);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x42)" identifier = (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x42)" * (cast_expression "(undefined1 (*) [2])(param_4 + 0x42)" ( (type_descriptor "undefined1 (*) [2]" type_identifier (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_4 + 0x42)" ( (binary_expression "param_4 + 0x42" identifier + number_literal) ))))) ;) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" identifier = number_literal) ;) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" ( (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" ( (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" * (cast_expression "(uint *)(param_4 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) & number_literal) )) << number_literal) )))) ;) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" if (parenthesized_expression "(param_4[0xe] != '\0')" ( (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" if (parenthesized_expression "(param_4[0xf] != '\0')" ( (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" { (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) = (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x60)" * (cast_expression "(undefined4 *)(param_4 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x60)" ( (binary_expression "param_4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" identifier = number_literal) ;) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier = (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" identifier (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" ( (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" * (cast_expression "(undefined2 *)(param_4 + 0x3a)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3a)" ( (binary_expression "param_4 + 0x3a" identifier + number_literal) )))) , (pointer_expression "*(undefined2 *)(param_4 + 0x44)" * (cast_expression "(undefined2 *)(param_4 + 0x44)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x44)" ( (binary_expression "param_4 + 0x44" identifier + number_literal) )))) )))) ;) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 0x54)" * (cast_expression "(undefined4 *)(param_4 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x54)" ( (binary_expression "param_4 + 0x54" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;" statement_identifier : (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" if (parenthesized_expression "(1 < (int)puVar24)" ( (binary_expression "1 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00014f44;" goto statement_identifier ;))) (labeled_statement "LAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);" statement_identifier : (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" if (parenthesized_expression "(puVar24 != (undefined *)0x0)" ( (binary_expression "puVar24 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" { (labeled_statement "LAB_00014fec:\n        local_c0 = param_4 + 0x94;" statement_identifier : (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" identifier = (binary_expression "param_4 + 0x94" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6fc4" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" identifier = (pointer_expression "*(int *)(param_4 + 0x18)" * (cast_expression "(int *)(param_4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "puVar24 = PTR_DAT_0002b2d8;" (assignment_expression "puVar24 = PTR_DAT_0002b2d8" identifier = identifier) ;) (if_statement "if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (compound_statement "{\n        iVar9 = 0;\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" else (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" { (expression_statement "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);" (assignment_expression "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" identifier = (cast_expression "(undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (parenthesized_expression "(*(code *)PTR_open64_0002b368)" ( (pointer_expression "*(code *)PTR_open64_0002b368" * (cast_expression "(code *)PTR_open64_0002b368" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6f94" identifier + number_literal) , number_literal , number_literal ))))) ;) (if_statement "if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" if (parenthesized_expression "((int)puVar13 < 0)" ( (binary_expression "(int)puVar13 < 0" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }" { (expression_statement "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar13 = (undefined4 *)*puVar13;" (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24 + -0x6f94)" ( (binary_expression "puVar24 + -0x6f94" identifier + number_literal) ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier )))) ;) }) (else_clause "else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" { (expression_statement "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);" (assignment_expression "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" identifier = (call_expression "(*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_write_0002b370)" ( (pointer_expression "*(code *)PTR_write_0002b370" * (cast_expression "(code *)PTR_write_0002b370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }" { (expression_statement "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" ( (pointer_expression "*(code *)PTR___errno_location_0002b354" * (cast_expression "(code *)PTR___errno_location_0002b354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar22 = puVar24 + -0x6f94;" (assignment_expression "puVar22 = puVar24 + -0x6f94" identifier = (binary_expression "puVar24 + -0x6f94" identifier + number_literal)) ;) (expression_statement "puVar24 = (undefined *)*puVar14;" (assignment_expression "puVar24 = (undefined *)*puVar14" identifier = (cast_expression "(undefined *)*puVar14" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier))) ;) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar22);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar22)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" ( (pointer_expression "*(code *)PTR_perror_0002b3a0" * (cast_expression "(code *)PTR_perror_0002b3a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" * (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24)" ( identifier )))) ;) }) (else_clause "else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" else (compound_statement "{\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" { (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" ( (pointer_expression "*(code *)PTR_close_0002b2fc" * (cast_expression "(code *)PTR_close_0002b2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f84" identifier + number_literal) , identifier , (binary_expression "puVar24 + -0x6f94" identifier + number_literal) ))) ;) (if_statement "if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" if (parenthesized_expression "(param_4[9] == '\0')" ( (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }" { (expression_statement "(*(code *)PTR_putchar_0002b358)(10);" (call_expression "(*(code *)PTR_putchar_0002b358)(10)" (parenthesized_expression "(*(code *)PTR_putchar_0002b358)" ( (pointer_expression "*(code *)PTR_putchar_0002b358" * (cast_expression "(code *)PTR_putchar_0002b358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(10)" ( number_literal ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" else (compound_statement "{\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" { (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" ( (pointer_expression "*(code *)PTR___printf_chk_0002b340" * (cast_expression "(code *)PTR___printf_chk_0002b340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" ( number_literal , (binary_expression "PTR_DAT_0002b2d8 + -0x6f6c" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" * (cast_expression "(undefined2 *)(param_4 + 0x3e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3e)" ( (binary_expression "param_4 + 0x3e" identifier + number_literal) )))) , (binary_expression "PTR_0002b2d4 + 0x6794" identifier + number_literal) , (pointer_expression "*(undefined2 *)(param_4 + 0x40)" * (cast_expression "(undefined2 *)(param_4 + 0x40)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x40)" ( (binary_expression "param_4 + 0x40" identifier + number_literal) )))) ))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))) }))) }))) }))) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" statement_identifier : (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x7158" identifier + number_literal) , (binary_expression "param_4 + 0x94" identifier + number_literal) ))) ;)) (expression_statement "puVar22 = PTR_DAT_0002b2d8 + -29000;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8 + -29000" identifier = (binary_expression "PTR_DAT_0002b2d8 + -29000" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;) (do_statement "do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);" do (compound_statement "{\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  }" { (expression_statement "puVar25 = (undefined4 *)((int)puVar14 + 1);" (assignment_expression "puVar25 = (undefined4 *)((int)puVar14 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar14 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 1)" ( (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22,*(undefined1 *)puVar14)" ( identifier , (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar14 = puVar25;" (assignment_expression "puVar14 = puVar25" identifier = identifier) ;) }) while (parenthesized_expression "((undefined4 *)((int)puVar13 + local_c4) != puVar25)" ( (binary_expression "(undefined4 *)((int)puVar13 + local_c4) != puVar25" (cast_expression "(undefined4 *)((int)puVar13 + local_c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + local_c4)" ( (binary_expression "(int)puVar13 + local_c4" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" ( (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" * (cast_expression "(code *)PTR_pr2serr_0002b3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002b2d8 + -0x6018)" ( (binary_expression "PTR_DAT_0002b2d8 + -0x6018" identifier + number_literal) ))) ;) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" identifier = (subscript_expression "param_4[9]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00014b48;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 LIT - IDENT) )) * LIT))) | (binary_expression 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 IDENT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = 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 != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 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 IDENT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT ))) & LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) << LIT) | 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 = LIT) ;) (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 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 IDENT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (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) , IDENT , (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , IDENT , (field_expression IDENT . field_identifier) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) )) && (parenthesized_expression ( (comma_expression (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) , (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (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) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) }) (else_clause else (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) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) }))) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (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) , IDENT ))) ;) })) }) (else_clause else (compound_statement { (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 , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , LIT , 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 * (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 )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (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) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == 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) ))) ;) }) (else_clause else (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) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (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 , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == 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) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 = IDENT) ;) }))) })) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < 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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (labeled_statement statement_identifier : (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) , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ( (binary_expression IDENT + LIT) , LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) }) (else_clause else (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 , 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (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 )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) }))) }))) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (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 = 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" (primitive_type "int") (function_declarator "FUN_0001496c(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" (identifier "FUN_0001496c") (parameter_list "(undefined4 param_1,int param_2,undefined *param_3,char *param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined *param_3" (type_identifier "undefined") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  ushort uVar3;\n  uint *puVar4;\n  undefined1 uVar5;\n  undefined2 uVar6;\n  undefined *puVar7;\n  undefined1 auVar8 [4];\n  byte bVar18;\n  int iVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  byte bVar19;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar20;\n  uint uVar21;\n  undefined *puVar22;\n  char cVar23;\n  undefined *puVar24;\n  undefined4 *puVar25;\n  int local_c4;\n  char *local_c0;\n  int local_9c;\n  undefined4 local_98;\n  uint local_94;\n  undefined1 local_8c [4];\n  undefined1 local_88 [2];\n  byte bStack_86;\n  undefined1 uStack_85;\n  undefined2 local_84;\n  undefined1 auStack_82 [2];\n  undefined1 local_80 [3];\n  undefined1 uStack_7d;\n  uint local_7c;\n  undefined4 local_78;\n  undefined4 local_74;\n  undefined4 local_70;\n  undefined4 local_6c [16];\n  int local_2c;\n  \n  puVar7 = PTR___stack_chk_guard_0002b3b8;\n  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);\n  bVar18 = bVar19 & 0x1f;\n  puVar13 = (undefined4 *)local_8c;\n  local_8c = (undefined1  [4])0x0;\n  local_88 = (undefined1  [2])0x0;\n  bStack_86 = 0;\n  uStack_85 = 0;\n  local_84 = 0;\n  auStack_82[0] = 0;\n  auStack_82[1] = 0;\n  _local_80 = 0;\n  local_7c = 0;\n  local_78 = 0;\n  local_74 = 0;\n  local_70 = 0;\n  puVar24 = *(undefined **)(param_4 + 0x30);\n  cVar23 = param_4[9];\n  cVar2 = param_4[0xc];\n  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;\n  if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }\n  local_8c = (undefined1  [4])0x7f000000;\n  uStack_85 = 0x18;\n  bStack_86 = bVar18;\n  if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }\n  local_78 = *(undefined4 *)(param_4 + 0x60);\n  local_c4 = 0x20;\n  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n  local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }\n  iVar9 = *(int *)(param_4 + 0x18);\nLAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;\n  do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );\nLAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);\n  puVar22 = PTR_DAT_0002b2d8 + -29000;\n  puVar14 = puVar13;\n  do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);\n  cVar23 = param_4[9];\n  goto LAB_00014b48;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "undefined2 uVar6;" (type_identifier "undefined2") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 auVar8 [4];" (type_identifier "undefined1") (array_declarator "auVar8 [4]" (identifier "auVar8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "char cVar23;" (primitive_type "char") (identifier "cVar23") (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined4 *puVar25;" (type_identifier "undefined4") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "char *local_c0;" (primitive_type "char") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "undefined1 local_8c [4];" (type_identifier "undefined1") (array_declarator "local_8c [4]" (identifier "local_8c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 local_88 [2];" (type_identifier "undefined1") (array_declarator "local_88 [2]" (identifier "local_88") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "byte bStack_86;" (type_identifier "byte") (identifier "bStack_86") (; ";")) (declaration "undefined1 uStack_85;" (type_identifier "undefined1") (identifier "uStack_85") (; ";")) (declaration "undefined2 local_84;" (type_identifier "undefined2") (identifier "local_84") (; ";")) (declaration "undefined1 auStack_82 [2];" (type_identifier "undefined1") (array_declarator "auStack_82 [2]" (identifier "auStack_82") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 local_80 [3];" (type_identifier "undefined1") (array_declarator "local_80 [3]" (identifier "local_80") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined1 uStack_7d;" (type_identifier "undefined1") (identifier "uStack_7d") (; ";")) (declaration "uint local_7c;" (type_identifier "uint") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_6c [16];" (type_identifier "undefined4") (array_declarator "local_6c [16]" (identifier "local_6c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar7 = PTR___stack_chk_guard_0002b3b8;" (assignment_expression "puVar7 = PTR___stack_chk_guard_0002b3b8" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_guard_0002b3b8")) (; ";")) (expression_statement "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);" (assignment_expression "bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c)" (identifier "bVar19") (= "=") (binary_expression "(byte)*(undefined4 *)(param_4 + 0x1c)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(undefined4 *)(param_4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "bVar18 = bVar19 & 0x1f;" (assignment_expression "bVar18 = bVar19 & 0x1f" (identifier "bVar18") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)local_8c;" (assignment_expression "puVar13 = (undefined4 *)local_8c" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)local_8c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = (undefined1  [4])0x0;" (assignment_expression "local_8c = (undefined1  [4])0x0" (identifier "local_8c") (= "=") (cast_expression "(undefined1  [4])0x0" (( "(") (type_descriptor "undefined1  [4]" (type_identifier "undefined1") (abstract_array_declarator "[4]" ([ "[") (number_literal "4") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_88 = (undefined1  [2])0x0;" (assignment_expression "local_88 = (undefined1  [2])0x0" (identifier "local_88") (= "=") (cast_expression "(undefined1  [2])0x0" (( "(") (type_descriptor "undefined1  [2]" (type_identifier "undefined1") (abstract_array_declarator "[2]" ([ "[") (number_literal "2") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bStack_86 = 0;" (assignment_expression "bStack_86 = 0" (identifier "bStack_86") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_85 = 0;" (assignment_expression "uStack_85 = 0" (identifier "uStack_85") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_82[0] = 0;" (assignment_expression "auStack_82[0] = 0" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_82[1] = 0;" (assignment_expression "auStack_82[1] = 0" (subscript_expression "auStack_82[1]" (identifier "auStack_82") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "_local_80 = 0;" (assignment_expression "_local_80 = 0" (identifier "_local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" (identifier "local_7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24 = *(undefined **)(param_4 + 0x30);" (assignment_expression "puVar24 = *(undefined **)(param_4 + 0x30)" (identifier "puVar24") (= "=") (pointer_expression "*(undefined **)(param_4 + 0x30)" (* "*") (cast_expression "(undefined **)(param_4 + 0x30)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" (identifier "cVar23") (= "=") (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "cVar2 = param_4[0xc];" (assignment_expression "cVar2 = param_4[0xc]" (identifier "cVar2") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0002b3b8" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0002b3b8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0002b3b8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0002b3b8")))) (; ";")) (if_statement "if (*param_4 != '\0') {\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" (if "if") (parenthesized_expression "(*param_4 != '\0')" (( "(") (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }\n    uVar6 = CONCAT11(bVar19,uStack_7d);\n    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;\n    if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }\n    local_98 = *(uint *)(param_4 + 0x54);\n    local_c4 = 0x10;\n    uVar21 = (uint)auStack_82 & 3;\n    puVar4 = (uint *)(auStack_82 + -uVar21);\n    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n    puVar1 = local_80 + 1;\n    uVar21 = (uint)puVar1 & 3;\n    *(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;\n    goto LAB_00014b3c;\n  }" ({ "{") (if_statement "if (cVar23 == '\0') {\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" (if "if") (parenthesized_expression "(cVar23 == '\0')" (( "(") (binary_expression "cVar23 == '\0'" (identifier "cVar23") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_98 = *(uint *)(param_4 + 0x68);\n      local_94 = *(uint *)(param_4 + 0x6c);\n      puVar1 = local_8c + 2;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n      puVar1 = local_88 + 1;\n      uVar21 = (uint)puVar1 & 3;\n      *(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;\n      bStack_86 = (byte)(local_94 >> 0x18);\n      uStack_85 = (undefined1)(local_94 >> 0x10);\n      local_84 = (undefined2)local_94;\n    }" ({ "{") (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" (identifier "local_98") (= "=") (pointer_expression "*(uint *)(param_4 + 0x68)" (* "*") (cast_expression "(uint *)(param_4 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x68)" (( "(") (binary_expression "param_4 + 0x68" (identifier "param_4") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" (identifier "local_94") (= "=") (pointer_expression "*(uint *)(param_4 + 0x6c)" (* "*") (cast_expression "(uint *)(param_4 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x6c)" (( "(") (binary_expression "param_4 + 0x6c" (identifier "param_4") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "puVar1 = local_8c + 2;" (assignment_expression "puVar1 = local_8c + 2" (identifier "puVar1") (= "=") (binary_expression "local_8c + 2" (identifier "local_8c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (uint)puVar1 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (& "&") (binary_expression "-1 << (4 - uVar21) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 >> uVar21 * 8" (identifier "local_98") (>> ">>") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar1 = local_88 + 1;" (assignment_expression "puVar1 = local_88 + 1" (identifier "puVar1") (= "=") (binary_expression "local_88 + 1" (identifier "local_88") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (uint)puVar1 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n           local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 << (3 - uVar21) * 8" (identifier "local_98") (<< "<<") (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" (( "(") (binary_expression "3 - uVar21" (number_literal "3") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "bStack_86 = (byte)(local_94 >> 0x18);" (assignment_expression "bStack_86 = (byte)(local_94 >> 0x18)" (identifier "bStack_86") (= "=") (call_expression "(byte)(local_94 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_94 >> 0x18)" (( "(") (binary_expression "local_94 >> 0x18" (identifier "local_94") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "uStack_85 = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_85 = (undefined1)(local_94 >> 0x10)" (identifier "uStack_85") (= "=") (call_expression "(undefined1)(local_94 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(local_94 >> 0x10)" (( "(") (binary_expression "local_94 >> 0x10" (identifier "local_94") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_84 = (undefined2)local_94;" (assignment_expression "local_84 = (undefined2)local_94" (identifier "local_84") (= "=") (cast_expression "(undefined2)local_94" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "local_94"))) (; ";")) (} "}"))) (expression_statement "uVar6 = CONCAT11(bVar19,uStack_7d);" (assignment_expression "uVar6 = CONCAT11(bVar19,uStack_7d)" (identifier "uVar6") (= "=") (call_expression "CONCAT11(bVar19,uStack_7d)" (identifier "CONCAT11") (argument_list "(bVar19,uStack_7d)" (( "(") (identifier "bVar19") (, ",") (identifier "uStack_7d") () ")")))) (; ";")) (expression_statement "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" (identifier "_local_80") (= "=") (binary_expression "CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,uVar6)" (identifier "CONCAT22") (argument_list "(local_80._0_2_,uVar6)" (( "(") (field_expression "local_80._0_2_" (identifier "local_80") (. ".") (field_identifier "_0_2_")) (, ",") (identifier "uVar6") () ")"))) (& "&") (number_literal "0xffff1fff"))) (; ";")) (if_statement "if (cVar2 == '\0') {\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }\n    else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }\n      if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }\n    }" ({ "{") (if_statement "if (param_4[3] != '\0') {\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" (if "if") (parenthesized_expression "(param_4[3] != '\0')" (( "(") (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x9c;\n        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n        local_c4 = 0x10;\n        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);\n        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);\n        goto LAB_00014b3c;\n      }" ({ "{") (if_statement "if (0xffff < *(uint *)(param_4 + 0x54)) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" (if "if") (parenthesized_expression "(0xffff < *(uint *)(param_4 + 0x54))" (( "(") (binary_expression "0xffff < *(uint *)(param_4 + 0x54)" (number_literal "0xffff") (< "<") (pointer_expression "*(uint *)(param_4 + 0x54)" (* "*") (cast_expression "(uint *)(param_4 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);\n          iVar9 = 1;\n          goto LAB_00014fa8;\n        }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x71b0)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x71b0" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x71b0")) () ")"))) (; ";")) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00014fa8;" (goto "goto") (statement_identifier "LAB_00014fa8") (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar19") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0x100000"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (| "|") (number_literal "0x80000"))) (; ";")) (} "}"))) (expression_statement "local_8c[0] = 0x9c;" (assignment_expression "local_8c[0] = 0x9c" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x9c")) (; ";")) (expression_statement "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" (identifier "_local_80") (= "=") (binary_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6)" (identifier "CONCAT22") (argument_list "((short)*(uint *)(param_4 + 0x54),uVar6)" (( "(") (cast_expression "(short)*(uint *)(param_4 + 0x54)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(uint *)(param_4 + 0x54)" (* "*") (cast_expression "(uint *)(param_4 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (, ",") (identifier "uVar6") () ")"))) (& "&") (number_literal "0xffff1fff"))) (; ";")) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" (identifier "local_c4") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8)" (( "(") (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3c)" (( "(") (binary_expression "param_4 + 0x3c" (identifier "param_4") (+ "+") (number_literal "0x3c")) () ")")))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c)" (subscript_expression "auStack_82[1]" (identifier "auStack_82") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x3c)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3c)" (( "(") (binary_expression "param_4 + 0x3c" (identifier "param_4") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00014b3c;" (goto "goto") (statement_identifier "LAB_00014b3c") (; ";")) (} "}"))) (if_statement "if (param_4[5] == '\0') {\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }\n      else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" (if "if") (parenthesized_expression "(param_4[5] == '\0')" (( "(") (binary_expression "param_4[5] == '\0'" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }\n        local_8c[0] = 0x93;\n        auVar8 = local_8c;\n        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n        uVar5 = local_8c[1];\n        local_8c = auVar8;\n        if (param_4[0x10] != '\0') goto LAB_00014a98;\n      }" ({ "{") (if_statement "if (param_4[8] == '\0') {\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" (if "if") (parenthesized_expression "(param_4[8] == '\0')" (( "(") (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }\n          uVar11 = 0x10;\n          if (param_4[10] == '\0') goto LAB_00014c10;\n          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n          if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }\n          local_8c._1_3_ = (uint3)bVar19 << 0x10;\n          if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }\n          local_8c[0] = 0x9a;\n          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);\n          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);\n          local_c4 = 0x10;\n          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;\n          goto LAB_00014e70;\n        }" ({ "{") (if_statement "if (cVar23 != '\0') {\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" (if "if") (parenthesized_expression "(cVar23 != '\0')" (( "(") (binary_expression "cVar23 != '\0'" (identifier "cVar23") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n            if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }\n            local_8c._2_2_ = (ushort)bVar18 << 8;\n            if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }\n            local_8c._0_2_ = 0x9f12;\n            uVar21 = *(uint *)(param_4 + 0x14);\n            if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }\n            local_98 = *(uint *)(param_4 + 0x54);\n            local_c4 = 0x10;\n            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);\n            local_84 = *(undefined2 *)(param_4 + 0x40);\n            uVar21 = (uint)auStack_82 & 3;\n            puVar4 = (uint *)(auStack_82 + -uVar21);\n            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;\n            puVar1 = local_80 + 1;\n            uVar21 = (uint)puVar1 & 3;\n            *(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;\n            goto LAB_00014e70;\n          }" ({ "{") (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar18") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n              bVar18 = bVar18 | 0x10;\n            }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              bVar18 = bVar18 | 0x10;\n            }" ({ "{") (expression_statement "bVar18 = bVar18 | 0x10;" (assignment_expression "bVar18 = bVar18 | 0x10" (identifier "bVar18") (= "=") (binary_expression "bVar18 | 0x10" (identifier "bVar18") (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "local_8c._2_2_ = (ushort)bVar18 << 8;" (assignment_expression "local_8c._2_2_ = (ushort)bVar18 << 8" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (= "=") (binary_expression "(ushort)bVar18 << 8" (cast_expression "(ushort)bVar18" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "bVar18")) (<< "<<") (number_literal "8"))) (; ";")) (if_statement "if (param_4[0xf] != '\0') {\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_8c._2_2_ = local_8c._2_2_ | 0x800;\n            }" ({ "{") (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x800;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (= "=") (binary_expression "local_8c._2_2_ | 0x800" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (| "|") (number_literal "0x800"))) (; ";")) (} "}"))) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" (identifier "local_8c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x9f12")) (; ";")) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(param_4 + 0x14)" (* "*") (cast_expression "(uint *)(param_4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x14)" (( "(") (binary_expression "param_4 + 0x14" (identifier "param_4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (uVar21 != 0) {\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }\n              if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }\n              if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }\n            }" ({ "{") (if_statement "if ((uVar21 & 1) != 0) {\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" (if "if") (parenthesized_expression "((uVar21 & 1) != 0)" (( "(") (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" (( "(") (binary_expression "uVar21 & 1" (identifier "uVar21") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;\n              }" ({ "{") (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" (identifier "_local_80") (= "=") (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |\n                            0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" (identifier "CONCAT22") (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" (( "(") (field_expression "local_80._0_2_" (identifier "local_80") (. ".") (field_identifier "_0_2_")) (, ",") (call_expression "CONCAT11(bVar19,uStack_7d)" (identifier "CONCAT11") (argument_list "(bVar19,uStack_7d)" (( "(") (identifier "bVar19") (, ",") (identifier "uStack_7d") () ")"))) () ")"))) (& "&") (number_literal "0xffff1fff")) (| "|") (number_literal "0x4000"))) (; ";")) (} "}"))) (if_statement "if ((uVar21 & 2) != 0) {\n                _local_80 = _local_80 | 0x8000;\n              }" (if "if") (parenthesized_expression "((uVar21 & 2) != 0)" (( "(") (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" (( "(") (binary_expression "uVar21 & 2" (identifier "uVar21") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                _local_80 = _local_80 | 0x8000;\n              }" ({ "{") (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" (identifier "_local_80") (= "=") (binary_expression "_local_80 | 0x8000" (identifier "_local_80") (| "|") (number_literal "0x8000"))) (; ";")) (} "}"))) (if_statement "if ((uVar21 & 4) != 0) {\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" (if "if") (parenthesized_expression "((uVar21 & 4) != 0)" (( "(") (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" (( "(") (binary_expression "uVar21 & 4" (identifier "uVar21") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                local_8c._2_2_ = local_8c._2_2_ | 0x100;\n                local_8c._0_2_ = 0x9f12;\n              }" ({ "{") (expression_statement "local_8c._2_2_ = local_8c._2_2_ | 0x100;" (assignment_expression "local_8c._2_2_ = local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (= "=") (binary_expression "local_8c._2_2_ | 0x100" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (| "|") (number_literal "0x100"))) (; ";")) (expression_statement "local_8c._0_2_ = 0x9f12;" (assignment_expression "local_8c._0_2_ = 0x9f12" (field_expression "local_8c._0_2_" (identifier "local_8c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x9f12")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" (identifier "local_98") (= "=") (pointer_expression "*(uint *)(param_4 + 0x54)" (* "*") (cast_expression "(uint *)(param_4 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" (identifier "local_c4") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);" (assignment_expression "local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" (identifier "local_88") (= "=") (binary_expression "(undefined1  [2])*(undefined2 *)(param_4 + 0x3e)" (parenthesized_expression "(undefined1  [2])" (( "(") (subscript_expression "undefined1  [2]" (identifier "undefined1") ([ "[") (number_literal "2") (] "]")) () ")")) (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3e)" (( "(") (binary_expression "param_4 + 0x3e" (identifier "param_4") (+ "+") (number_literal "0x3e")) () ")"))))) (; ";")) (expression_statement "local_84 = *(undefined2 *)(param_4 + 0x40);" (assignment_expression "local_84 = *(undefined2 *)(param_4 + 0x40)" (identifier "local_84") (= "=") (pointer_expression "*(undefined2 *)(param_4 + 0x40)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "auStack_82")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(auStack_82 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_82 + -uVar21)" (( "(") (binary_expression "auStack_82 + -uVar21" (identifier "auStack_82") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (; ";")) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (& "&") (binary_expression "-1 << (4 - uVar21) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 >> uVar21 * 8" (identifier "local_98") (>> ">>") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" (identifier "puVar1") (= "=") (binary_expression "local_80 + 1" (identifier "local_80") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (uint)puVar1 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n                 local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 << (3 - uVar21) * 8" (identifier "local_98") (<< "<<") (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" (( "(") (binary_expression "3 - uVar21" (number_literal "3") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (goto_statement "goto LAB_00014e70;" (goto "goto") (statement_identifier "LAB_00014e70") (; ";")) (} "}"))) (expression_statement "uVar11 = 0x10;" (assignment_expression "uVar11 = 0x10" (identifier "uVar11") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (param_4[10] == '\0') goto LAB_00014c10;" (if "if") (parenthesized_expression "(param_4[10] == '\0')" (( "(") (binary_expression "param_4[10] == '\0'" (subscript_expression "param_4[10]" (identifier "param_4") ([ "[") (number_literal "10") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014c10;" (goto "goto") (statement_identifier "LAB_00014c10") (; ";"))) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar19") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n            bVar19 = bVar19 | 0x10;\n          }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            bVar19 = bVar19 | 0x10;\n          }" ({ "{") (expression_statement "bVar19 = bVar19 | 0x10;" (assignment_expression "bVar19 = bVar19 | 0x10" (identifier "bVar19") (= "=") (binary_expression "bVar19 | 0x10" (identifier "bVar19") (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4[0xf] != '\0') {\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          }" ({ "{") (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (| "|") (number_literal "0x80000"))) (; ";")) (} "}"))) (expression_statement "local_8c[0] = 0x9a;" (assignment_expression "local_8c[0] = 0x9a" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x9a")) (; ";")) (expression_statement "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);" (assignment_expression "auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)*(undefined2 *)(param_4 + 0x42) >> 8)" (( "(") (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42) >> 8" (binary_expression "(ushort)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (cast_expression "(undefined2 *)(param_4 + 0x42)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x42)" (( "(") (binary_expression "param_4 + 0x42" (identifier "param_4") (+ "+") (number_literal "0x42")) () ")")))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);" (assignment_expression "auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42)" (subscript_expression "auStack_82[1]" (identifier "auStack_82") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(undefined1)*(undefined2 *)(param_4 + 0x42)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (* "*") (cast_expression "(undefined2 *)(param_4 + 0x42)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x42)" (( "(") (binary_expression "param_4 + 0x42" (identifier "param_4") (+ "+") (number_literal "0x42")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" (identifier "local_c4") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;" (assignment_expression "_local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" (identifier "_local_80") (= "=") (binary_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff" (call_expression "CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6)" (identifier "CONCAT22") (argument_list "((short)*(undefined4 *)(param_4 + 0x54),uVar6)" (( "(") (cast_expression "(short)*(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (, ",") (identifier "uVar6") () ")"))) (& "&") (number_literal "0xffff1fff"))) (; ";")) (goto_statement "goto LAB_00014e70;" (goto "goto") (statement_identifier "LAB_00014e70") (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar19") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4[2] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" (if "if") (parenthesized_expression "(param_4[2] != '\0')" (( "(") (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0x100000"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xb] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" (if "if") (parenthesized_expression "(param_4[0xb] != '\0')" (( "(") (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" (identifier "param_4") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (| "|") (number_literal "0x80000"))) (; ";")) (} "}"))) (expression_statement "local_8c[0] = 0x93;" (assignment_expression "local_8c[0] = 0x93" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x93")) (; ";")) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" (identifier "auVar8") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" (identifier "local_8c") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" (( "(") (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" (identifier "uVar5") (= "=") (subscript_expression "local_8c[1]" (identifier "local_8c") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" (identifier "local_8c") (= "=") (identifier "auVar8")) (; ";")) (if_statement "if (param_4[0x10] != '\0') goto LAB_00014a98;" (if "if") (parenthesized_expression "(param_4[0x10] != '\0')" (( "(") (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" (identifier "param_4") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014a98;" (goto "goto") (statement_identifier "LAB_00014a98") (; ";"))) (} "}")) (else_clause "else {\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" (else "else") (compound_statement "{\n        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n        local_8c._1_3_ = (uint3)bVar19 << 0x10;\n        if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }\n        local_8c[0] = 0x8b;\n        if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }\n      }" ({ "{") (expression_statement "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar19") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar19 << 0x10 | 0x100000" (binary_expression "(uint3)bVar19 << 0x10" (cast_expression "(uint3)bVar19" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar19")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0x100000"))) (; ";")) (} "}"))) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x8b")) (; ";")) (if_statement "if (param_4[0xf] != '\0') {\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n          local_8c[0] = 0x8b;\n        }" ({ "{") (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (| "|") (number_literal "0x80000"))) (; ";")) (expression_statement "local_8c[0] = 0x8b;" (assignment_expression "local_8c[0] = 0x8b" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x8b")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      local_8c._1_3_ = (uint3)bVar18 << 0x10;\n      if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }\n      if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }\n      local_8c[0] = 0x8a;\n      auVar8 = local_8c;\n      uVar21 = *(uint *)(param_4 + 0x14);\n      if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }\n    }" ({ "{") (expression_statement "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (identifier "bVar18") (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar18")) (<< "<<") (number_literal "0x10"))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;\n      }" ({ "{") (expression_statement "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;" (assignment_expression "local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "(uint3)bVar18 << 0x10 | 0x100000" (binary_expression "(uint3)bVar18 << 0x10" (cast_expression "(uint3)bVar18" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (identifier "bVar18")) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0x100000"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xf] != '\0') {\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_8c._1_3_ = local_8c._1_3_ | 0x80000;\n      }" ({ "{") (expression_statement "local_8c._1_3_ = local_8c._1_3_ | 0x80000;" (assignment_expression "local_8c._1_3_ = local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (= "=") (binary_expression "local_8c._1_3_ | 0x80000" (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_")) (| "|") (number_literal "0x80000"))) (; ";")) (} "}"))) (expression_statement "local_8c[0] = 0x8a;" (assignment_expression "local_8c[0] = 0x8a" (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x8a")) (; ";")) (expression_statement "auVar8 = local_8c;" (assignment_expression "auVar8 = local_8c" (identifier "auVar8") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "uVar21 = *(uint *)(param_4 + 0x14);" (assignment_expression "uVar21 = *(uint *)(param_4 + 0x14)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(param_4 + 0x14)" (* "*") (cast_expression "(uint *)(param_4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x14)" (( "(") (binary_expression "param_4 + 0x14" (identifier "param_4") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (uVar21 != 0) {\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }\n        if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }\n        if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }\n      }" ({ "{") (if_statement "if ((uVar21 & 1) != 0) {\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" (if "if") (parenthesized_expression "((uVar21 & 1) != 0)" (( "(") (binary_expression "(uVar21 & 1) != 0" (parenthesized_expression "(uVar21 & 1)" (( "(") (binary_expression "uVar21 & 1" (identifier "uVar21") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;\n        }" ({ "{") (expression_statement "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;" (assignment_expression "_local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" (identifier "_local_80") (= "=") (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000" (binary_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff" (call_expression "CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" (identifier "CONCAT22") (argument_list "(local_80._0_2_,CONCAT11(bVar19,uStack_7d))" (( "(") (field_expression "local_80._0_2_" (identifier "local_80") (. ".") (field_identifier "_0_2_")) (, ",") (call_expression "CONCAT11(bVar19,uStack_7d)" (identifier "CONCAT11") (argument_list "(bVar19,uStack_7d)" (( "(") (identifier "bVar19") (, ",") (identifier "uStack_7d") () ")"))) () ")"))) (& "&") (number_literal "0xffff1fff")) (| "|") (number_literal "0x4000"))) (; ";")) (} "}"))) (if_statement "if ((uVar21 & 2) != 0) {\n          _local_80 = _local_80 | 0x8000;\n        }" (if "if") (parenthesized_expression "((uVar21 & 2) != 0)" (( "(") (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" (( "(") (binary_expression "uVar21 & 2" (identifier "uVar21") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          _local_80 = _local_80 | 0x8000;\n        }" ({ "{") (expression_statement "_local_80 = _local_80 | 0x8000;" (assignment_expression "_local_80 = _local_80 | 0x8000" (identifier "_local_80") (= "=") (binary_expression "_local_80 | 0x8000" (identifier "_local_80") (| "|") (number_literal "0x8000"))) (; ";")) (} "}"))) (if_statement "if ((uVar21 & 4) != 0) {\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" (if "if") (parenthesized_expression "((uVar21 & 4) != 0)" (( "(") (binary_expression "(uVar21 & 4) != 0" (parenthesized_expression "(uVar21 & 4)" (( "(") (binary_expression "uVar21 & 4" (identifier "uVar21") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);\n          uVar5 = local_8c[1];\n          local_8c = auVar8;\nLAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);\n        }" ({ "{") (expression_statement "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);" (assignment_expression "local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10)" (subscript_expression "local_8c[1]" (identifier "local_8c") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(undefined1)((uint3)local_8c._1_3_ >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint3)local_8c._1_3_ >> 0x10)" (( "(") (binary_expression "(uint3)local_8c._1_3_ >> 0x10" (cast_expression "(uint3)local_8c._1_3_" (( "(") (type_descriptor "uint3" (type_identifier "uint3")) () ")") (field_expression "local_8c._1_3_" (identifier "local_8c") (. ".") (field_identifier "_1_3_"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar5 = local_8c[1];" (assignment_expression "uVar5 = local_8c[1]" (identifier "uVar5") (= "=") (subscript_expression "local_8c[1]" (identifier "local_8c") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_8c = auVar8;" (assignment_expression "local_8c = auVar8" (identifier "local_8c") (= "=") (identifier "auVar8")) (; ";")) (labeled_statement "LAB_00014a98:\n          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" (statement_identifier "LAB_00014a98") (: ":") (expression_statement "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);" (assignment_expression "local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" (identifier "local_8c") (= "=") (call_expression "(undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" (parenthesized_expression "(undefined1  [4])" (( "(") (subscript_expression "undefined1  [4]" (identifier "undefined1") ([ "[") (number_literal "4") (] "]")) () ")")) (argument_list "((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000)" (( "(") (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000" (binary_expression "(uint)CONCAT11(local_8c[0],uVar5) << 0x10" (cast_expression "(uint)CONCAT11(local_8c[0],uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11(local_8c[0],uVar5)" (identifier "CONCAT11") (argument_list "(local_8c[0],uVar5)" (( "(") (subscript_expression "local_8c[0]" (identifier "local_8c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar5") () ")")))) (<< "<<") (number_literal "0x10")) (| "|") (number_literal "0x10000")) () ")")))) (; ";"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_98 = *(uint *)(param_4 + 0x54);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x54)" (identifier "local_98") (= "=") (pointer_expression "*(uint *)(param_4 + 0x54)" (* "*") (cast_expression "(uint *)(param_4 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x10;" (assignment_expression "local_c4 = 0x10" (identifier "local_c4") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar21 = (uint)auStack_82 & 3;" (assignment_expression "uVar21 = (uint)auStack_82 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)auStack_82 & 3" (cast_expression "(uint)auStack_82" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "auStack_82")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar4 = (uint *)(auStack_82 + -uVar21);" (assignment_expression "puVar4 = (uint *)(auStack_82 + -uVar21)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(auStack_82 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(auStack_82 + -uVar21)" (( "(") (binary_expression "auStack_82 + -uVar21" (identifier "auStack_82") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (; ";")) (expression_statement "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;" (assignment_expression "*puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8" (binary_expression "*puVar4 & -1 << (4 - uVar21) * 8" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (& "&") (binary_expression "-1 << (4 - uVar21) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 >> uVar21 * 8" (identifier "local_98") (>> ">>") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar1 = local_80 + 1;" (assignment_expression "puVar1 = local_80 + 1" (identifier "puVar1") (= "=") (binary_expression "local_80 + 1" (identifier "local_80") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = (uint)puVar1 & 3;" (assignment_expression "uVar21 = (uint)puVar1 & 3" (identifier "uVar21") (= "=") (binary_expression "(uint)puVar1 & 3" (cast_expression "(uint)puVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8;" (assignment_expression "*(uint *)(puVar1 + -uVar21) =\n         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |\n         local_98 << (3 - uVar21) * 8" (binary_expression "*(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8" (pointer_expression "*(uint *)(puVar1 + -uVar21)" (* "*") (cast_expression "(uint *)(puVar1 + -uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + -uVar21)" (( "(") (binary_expression "puVar1 + -uVar21" (identifier "puVar1") (+ "+") (unary_expression "-uVar21" (- "-") (identifier "uVar21"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar21 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "local_98 << (3 - uVar21) * 8" (identifier "local_98") (<< "<<") (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" (( "(") (binary_expression "3 - uVar21" (number_literal "3") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (goto_statement "goto LAB_00014b3c;" (goto "goto") (statement_identifier "LAB_00014b3c") (; ";")) (} "}"))) (expression_statement "local_8c = (undefined1  [4])0x7f000000;" (assignment_expression "local_8c = (undefined1  [4])0x7f000000" (identifier "local_8c") (= "=") (cast_expression "(undefined1  [4])0x7f000000" (( "(") (type_descriptor "undefined1  [4]" (type_identifier "undefined1") (abstract_array_declarator "[4]" ([ "[") (number_literal "4") (] "]"))) () ")") (number_literal "0x7f000000"))) (; ";")) (expression_statement "uStack_85 = 0x18;" (assignment_expression "uStack_85 = 0x18" (identifier "uStack_85") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "bStack_86 = bVar18;" (assignment_expression "bStack_86 = bVar18" (identifier "bStack_86") (= "=") (identifier "bVar18")) (; ";")) (if_statement "if (cVar23 == '\0') {\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }\n  else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" (if "if") (parenthesized_expression "(cVar23 == '\0')" (( "(") (binary_expression "cVar23 == '\0'" (identifier "cVar23") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_98 = *(uint *)(param_4 + 0x68);\n    local_94 = *(uint *)(param_4 + 0x6c);\n    _local_80 = local_98;\n    local_7c = local_94;\n    if (cVar2 == '\0') goto LAB_00014c58;\nLAB_00014adc:\n    cVar2 = param_4[0xe];\n    local_84 = 0xb;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\njoined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n  }" ({ "{") (expression_statement "local_98 = *(uint *)(param_4 + 0x68);" (assignment_expression "local_98 = *(uint *)(param_4 + 0x68)" (identifier "local_98") (= "=") (pointer_expression "*(uint *)(param_4 + 0x68)" (* "*") (cast_expression "(uint *)(param_4 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x68)" (( "(") (binary_expression "param_4 + 0x68" (identifier "param_4") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "local_94 = *(uint *)(param_4 + 0x6c);" (assignment_expression "local_94 = *(uint *)(param_4 + 0x6c)" (identifier "local_94") (= "=") (pointer_expression "*(uint *)(param_4 + 0x6c)" (* "*") (cast_expression "(uint *)(param_4 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x6c)" (( "(") (binary_expression "param_4 + 0x6c" (identifier "param_4") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "_local_80 = local_98;" (assignment_expression "_local_80 = local_98" (identifier "_local_80") (= "=") (identifier "local_98")) (; ";")) (expression_statement "local_7c = local_94;" (assignment_expression "local_7c = local_94" (identifier "local_7c") (= "=") (identifier "local_94")) (; ";")) (if_statement "if (cVar2 == '\0') goto LAB_00014c58;" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014c58;" (goto "goto") (statement_identifier "LAB_00014c58") (; ";"))) (labeled_statement "LAB_00014adc:\n    cVar2 = param_4[0xe];" (statement_identifier "LAB_00014adc") (: ":") (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" (identifier "cVar2") (= "=") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "local_84 = 0xb;" (assignment_expression "local_84 = 0xb" (identifier "local_84") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (labeled_statement "joined_r0x00014cf4:\n    if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" (statement_identifier "joined_r0x00014cf4") (: ":") (if_statement "if (cVar2 != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "0x10"))) (; ";")) (} "}")))) (if_statement "if (param_4[0xf] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" (else "else") (compound_statement "{\n    if (cVar2 != '\0') goto LAB_00014adc;\nLAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }\n    if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }\n    if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }\n    local_84 = 0xd;\n    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n    if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }\n    if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }\n    if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }\n  }" ({ "{") (if_statement "if (cVar2 != '\0') goto LAB_00014adc;" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00014adc;" (goto "goto") (statement_identifier "LAB_00014adc") (; ";"))) (labeled_statement "LAB_00014c58:\n    if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" (statement_identifier "LAB_00014c58") (: ":") (if_statement "if (param_4[3] != '\0') {\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" (if "if") (parenthesized_expression "(param_4[3] != '\0')" (( "(") (binary_expression "param_4[3] != '\0'" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);\n      cVar2 = param_4[0xe];\n      local_84 = 0xf;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      goto joined_r0x00014cf4;\n    }" ({ "{") (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x3c)" (identifier "local_88") (= "=") (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x3c)" (* "*") (cast_expression "(undefined1 (*) [2])(param_4 + 0x3c)" (( "(") (type_descriptor "undefined1 (*) [2]" (type_identifier "undefined1") (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "2") (] "]"))) () ")") (parenthesized_expression "(param_4 + 0x3c)" (( "(") (binary_expression "param_4 + 0x3c" (identifier "param_4") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "cVar2 = param_4[0xe];" (assignment_expression "cVar2 = param_4[0xe]" (identifier "cVar2") (= "=") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" (identifier "local_84") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (goto_statement "goto joined_r0x00014cf4;" (goto "goto") (statement_identifier "joined_r0x00014cf4") (; ";")) (} "}")))) (if_statement "if (param_4[5] != '\0') {\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" (if "if") (parenthesized_expression "(param_4[5] != '\0')" (( "(") (binary_expression "param_4[5] != '\0'" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_84 = 0xe;\n      local_8c._0_2_ = 0x7f00;\n      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x58);\n      local_74 = *(undefined4 *)(param_4 + 0x5c);\n      local_c4 = 0x20;\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014b3c;\n    }" ({ "{") (expression_statement "local_84 = 0xe;" (assignment_expression "local_84 = 0xe" (identifier "local_84") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "local_8c._0_2_ = 0x7f00;" (assignment_expression "local_8c._0_2_ = 0x7f00" (field_expression "local_8c._0_2_" (identifier "local_8c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0x7f00")) (; ";")) (expression_statement "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);" (assignment_expression "local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38)" (field_expression "local_8c._2_2_" (identifier "local_8c") (. ".") (field_identifier "_2_2_")) (= "=") (pointer_expression "*(undefined2 *)(param_4 + 0x38)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x38)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x38)" (( "(") (binary_expression "param_4 + 0x38" (identifier "param_4") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x58);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x58)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x58)" (( "(") (binary_expression "param_4 + 0x58" (identifier "param_4") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "local_74 = *(undefined4 *)(param_4 + 0x5c);" (assignment_expression "local_74 = *(undefined4 *)(param_4 + 0x5c)" (identifier "local_74") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x5c)" (( "(") (binary_expression "param_4 + 0x5c" (identifier "param_4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" (identifier "local_c4") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_00014b3c;" (goto "goto") (statement_identifier "LAB_00014b3c") (; ";")) (} "}"))) (if_statement "if (param_4[8] == '\0') {\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" (if "if") (parenthesized_expression "(param_4[8] == '\0')" (( "(") (binary_expression "param_4[8] == '\0'" (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (cVar23 == '\0') goto LAB_00015740;\n      local_84 = 0x11;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_c4 = 0x20;\n      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);\n      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);\n      local_70 = *(undefined4 *)(param_4 + 0x54);\n      goto LAB_00014e70;\n    }" ({ "{") (if_statement "if (cVar23 == '\0') goto LAB_00015740;" (if "if") (parenthesized_expression "(cVar23 == '\0')" (( "(") (binary_expression "cVar23 == '\0'" (identifier "cVar23") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00015740;" (goto "goto") (statement_identifier "LAB_00015740") (; ";"))) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" (identifier "local_84") (= "=") (number_literal "0x11")) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" (identifier "local_c4") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);" (assignment_expression "_local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" (identifier "_local_80") (= "=") (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" (identifier "CONCAT22") (argument_list "(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82)" (( "(") (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3e)" (( "(") (binary_expression "param_4 + 0x3e" (identifier "param_4") (+ "+") (number_literal "0x3e")) () ")")))) (, ",") (identifier "stack0xffffff82") () ")")))) (; ";")) (expression_statement "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);" (assignment_expression "local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" (identifier "local_7c") (= "=") (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" (identifier "CONCAT22") (argument_list "(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_)" (( "(") (pointer_expression "*(undefined2 *)(param_4 + 0x40)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (field_expression "local_7c._2_2_" (identifier "local_7c") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_00014e70;" (goto "goto") (statement_identifier "LAB_00014e70") (; ";")) (} "}"))) (expression_statement "local_84 = 0xd;" (assignment_expression "local_84 = 0xd" (identifier "local_84") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[2] != '\0') {\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" (if "if") (parenthesized_expression "(param_4[2] != '\0')" (( "(") (binary_expression "param_4[2] != '\0'" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 0x10;\n    }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xb] != '\0') {\n      auStack_82[0] = auStack_82[0] | 8;\n    }" (if "if") (parenthesized_expression "(param_4[0xb] != '\0')" (( "(") (binary_expression "param_4[0xb] != '\0'" (subscript_expression "param_4[0xb]" (identifier "param_4") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 8;\n    }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (if_statement "if (param_4[0x10] != '\0') {\n      auStack_82[0] = auStack_82[0] | 1;\n    }" (if "if") (parenthesized_expression "(param_4[0x10] != '\0')" (( "(") (binary_expression "param_4[0x10] != '\0'" (subscript_expression "param_4[0x10]" (identifier "param_4") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      auStack_82[0] = auStack_82[0] | 1;\n    }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 1;" (assignment_expression "auStack_82[0] = auStack_82[0] | 1" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 1" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x60)" (( "(") (binary_expression "param_4 + 0x60" (identifier "param_4") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" (identifier "local_c4") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (identifier "local_74") (= "=") (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (identifier "CONCAT22") (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (( "(") (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3a)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3a)" (( "(") (binary_expression "param_4 + 0x3a" (identifier "param_4") (+ "+") (number_literal "0x3a")) () ")")))) (, ",") (pointer_expression "*(undefined2 *)(param_4 + 0x44)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x44)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x44)" (( "(") (binary_expression "param_4 + 0x44" (identifier "param_4") (+ "+") (number_literal "0x44")) () ")")))) () ")")))) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (labeled_statement "LAB_00014b3c:\n  if (1 < (int)puVar24) goto LAB_00014f44;" (statement_identifier "LAB_00014b3c") (: ":") (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" (if "if") (parenthesized_expression "(1 < (int)puVar24)" (( "(") (binary_expression "1 < (int)puVar24" (number_literal "1") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")) (goto_statement "goto LAB_00014f44;" (goto "goto") (statement_identifier "LAB_00014f44") (; ";")))) (labeled_statement "LAB_00014b48:\n  if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" (statement_identifier "LAB_00014b48") (: ":") (if_statement "if (cVar23 == '\0') {\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }\n  else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" (if "if") (parenthesized_expression "(cVar23 == '\0')" (( "(") (binary_expression "cVar23 == '\0'" (identifier "cVar23") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;\n    if (0 < (int)param_3) goto LAB_00014b74;\n  }" ({ "{") (labeled_statement "LAB_00014b64:\n    if ((int)puVar24 < 4) goto LAB_00014e7c;" (statement_identifier "LAB_00014b64") (: ":") (if_statement "if ((int)puVar24 < 4) goto LAB_00014e7c;" (if "if") (parenthesized_expression "((int)puVar24 < 4)" (( "(") (binary_expression "(int)puVar24 < 4" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_00014e7c;" (goto "goto") (statement_identifier "LAB_00014e7c") (; ";")))) (if_statement "if (0 < (int)param_3) goto LAB_00014b74;" (if "if") (parenthesized_expression "(0 < (int)param_3)" (( "(") (binary_expression "0 < (int)param_3" (number_literal "0") (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_00014b74;" (goto "goto") (statement_identifier "LAB_00014b74") (; ";"))) (} "}")) (else_clause "else {\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" (else "else") (compound_statement "{\n    if ((int)puVar24 < 3) goto LAB_00014e7c;\n    if ((int)param_3 < 0x20) goto LAB_00014b64;\n    iVar9 = *(int *)(param_4 + 0x4c);\n    uVar3 = *(ushort *)(param_4 + 0x3e);\n    puVar14 = (undefined4 *)(param_2 + 0x20);\n    (*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));\n    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);\n    puVar22 = PTR_DAT_0002b2d8;\n    if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }\n    if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }\nLAB_00014b74:\n    local_c0 = param_4 + 0x94;\n    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }\n  }" ({ "{") (if_statement "if ((int)puVar24 < 3) goto LAB_00014e7c;" (if "if") (parenthesized_expression "((int)puVar24 < 3)" (( "(") (binary_expression "(int)puVar24 < 3" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (< "<") (number_literal "3")) () ")")) (goto_statement "goto LAB_00014e7c;" (goto "goto") (statement_identifier "LAB_00014e7c") (; ";"))) (if_statement "if ((int)param_3 < 0x20) goto LAB_00014b64;" (if "if") (parenthesized_expression "((int)param_3 < 0x20)" (( "(") (binary_expression "(int)param_3 < 0x20" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x20")) () ")")) (goto_statement "goto LAB_00014b64;" (goto "goto") (statement_identifier "LAB_00014b64") (; ";"))) (expression_statement "iVar9 = *(int *)(param_4 + 0x4c);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x4c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_4 + 0x4c)" (* "*") (cast_expression "(int *)(param_4 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x4c)" (( "(") (binary_expression "param_4 + 0x4c" (identifier "param_4") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(ushort *)(param_4 + 0x3e);" (assignment_expression "uVar3 = *(ushort *)(param_4 + 0x3e)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(param_4 + 0x3e)" (* "*") (cast_expression "(ushort *)(param_4 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3e)" (( "(") (binary_expression "param_4 + 0x3e" (identifier "param_4") (+ "+") (number_literal "0x3e")) () ")"))))) (; ";")) (expression_statement "puVar14 = (undefined4 *)(param_2 + 0x20);" (assignment_expression "puVar14 = (undefined4 *)(param_2 + 0x20)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,\n               *(undefined2 *)(param_4 + 0x40))" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x7140" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7140")) (, ",") (binary_expression "param_4 + 0x94" (identifier "param_4") (+ "+") (number_literal "0x94")) (, ",") (binary_expression "PTR_0002b2d4 + 0x6794" (identifier "PTR_0002b2d4") (+ "+") (number_literal "0x6794")) (, ",") (pointer_expression "*(undefined2 *)(param_4 + 0x40)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x7118" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7118")) (, ",") (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3")) (* "*") (identifier "iVar9")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar22 = PTR_DAT_0002b2d8;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8" (identifier "puVar22") (= "=") (identifier "PTR_DAT_0002b2d8")) (; ";")) (if_statement "if (*(short *)(param_4 + 0x40) != 0) {\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" (if "if") (parenthesized_expression "(*(short *)(param_4 + 0x40) != 0)" (( "(") (binary_expression "*(short *)(param_4 + 0x40) != 0" (pointer_expression "*(short *)(param_4 + 0x40)" (* "*") (cast_expression "(short *)(param_4 + 0x40)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = 0;\n      puVar15 = PTR_DAT_0002b2d8 + -0x6018;\n      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;\n      puVar17 = PTR_DAT_0002b2d8 + -0x7098;\n      do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));\n    }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = PTR_DAT_0002b2d8 + -0x6018;" (assignment_expression "puVar15 = PTR_DAT_0002b2d8 + -0x6018" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_0002b2d8 + -0x6018" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6018"))) (; ";")) (expression_statement "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;" (assignment_expression "puVar16 = PTR_DAT_0002b2d8 + -0x6ee4" (identifier "puVar16") (= "=") (binary_expression "PTR_DAT_0002b2d8 + -0x6ee4" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6ee4"))) (; ";")) (expression_statement "puVar17 = PTR_DAT_0002b2d8 + -0x7098;" (assignment_expression "puVar17 = PTR_DAT_0002b2d8 + -0x7098" (identifier "puVar17") (= "=") (binary_expression "PTR_DAT_0002b2d8 + -0x7098" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7098"))) (; ";")) (do_statement "do {\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));" (do "do") (compound_statement "{\n        local_94 = puVar14[1];\n        local_98 = puVar14[2];\n        puVar20 = puVar16;\n        if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }\n        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;\n        if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }\n        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }\n        iVar10 = iVar10 + 1;\n        puVar14 = puVar14 + 8;\n      }" ({ "{") (expression_statement "local_94 = puVar14[1];" (assignment_expression "local_94 = puVar14[1]" (identifier "local_94") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_98 = puVar14[2];" (assignment_expression "local_98 = puVar14[2]" (identifier "local_98") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar20 = puVar16;" (assignment_expression "puVar20 = puVar16" (identifier "puVar20") (= "=") (identifier "puVar16")) (; ";")) (if_statement "if (*param_4 != '\0') {\n          puVar20 = puVar15;\n        }" (if "if") (parenthesized_expression "(*param_4 != '\0')" (( "(") (binary_expression "*param_4 != '\0'" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          puVar20 = puVar15;\n        }" ({ "{") (expression_statement "puVar20 = puVar15;" (assignment_expression "puVar20 = puVar15" (identifier "puVar20") (= "=") (identifier "puVar15")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)\n        ;" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)" (( "(") (binary_expression "puVar22 + -0x70e0" (identifier "puVar22") (+ "+") (number_literal "-0x70e0")) (, ",") (identifier "iVar10") (, ",") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (, ",") (identifier "local_94") (, ",") (identifier "local_98") (, ",") (identifier "puVar20") () ")"))) (; ";")) (if_statement "if (param_4[1] != '\0') {\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" (if "if") (parenthesized_expression "(param_4[1] != '\0')" (( "(") (binary_expression "param_4[1] != '\0'" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_98._2_2_ = (undefined2)puVar14[3];\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);\n          uVar6 = local_98._0_2_;\n          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);\n          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);\n          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);\n        }" ({ "{") (expression_statement "local_98._2_2_ = (undefined2)puVar14[3];" (assignment_expression "local_98._2_2_ = (undefined2)puVar14[3]" (field_expression "local_98._2_2_" (identifier "local_98") (. ".") (field_identifier "_2_2_")) (= "=") (cast_expression "(undefined2)puVar14[3]" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" (field_expression "local_98._1_3_" (identifier "local_98") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" (identifier "CONCAT12") (argument_list "(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_)" (( "(") (pointer_expression "*(undefined1 *)((int)puVar14 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x11)" (( "(") (binary_expression "(int)puVar14 + 0x11" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x11")) () ")")))) (, ",") (field_expression "local_98._2_2_" (identifier "local_98") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" (identifier "local_98") (= "=") (call_expression "CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" (identifier "CONCAT13") (argument_list "(*(undefined1 *)(puVar14 + 4),local_98._1_3_)" (( "(") (pointer_expression "*(undefined1 *)(puVar14 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (, ",") (field_expression "local_98._1_3_" (identifier "local_98") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "uVar6 = local_98._0_2_;" (assignment_expression "uVar6 = local_98._0_2_" (identifier "uVar6") (= "=") (field_expression "local_98._0_2_" (identifier "local_98") (. ".") (field_identifier "_0_2_"))) (; ";")) (expression_statement "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);" (assignment_expression "local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" (field_expression "local_98._1_3_" (identifier "local_98") (. ".") (field_identifier "_1_3_")) (= "=") (call_expression "CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" (identifier "CONCAT12") (argument_list "(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_)" (( "(") (pointer_expression "*(undefined1 *)((int)puVar14 + 0x13)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x13)" (( "(") (binary_expression "(int)puVar14 + 0x13" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x13")) () ")")))) (, ",") (field_expression "local_98._2_2_" (identifier "local_98") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);" (assignment_expression "local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" (identifier "local_98") (= "=") (call_expression "CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" (identifier "CONCAT13") (argument_list "(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_)" (( "(") (pointer_expression "*(undefined1 *)((int)puVar14 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x12)" (( "(") (binary_expression "(int)puVar14 + 0x12" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x12")) () ")")))) (, ",") (field_expression "local_98._1_3_" (identifier "local_98") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_)" (( "(") (binary_expression "puVar22 + -0x70b4" (identifier "puVar22") (+ "+") (number_literal "-0x70b4")) (, ",") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "uVar6") (, ",") (field_expression "local_98._0_2_" (identifier "local_98") (. ".") (field_identifier "_0_2_")) () ")"))) (; ";")) (} "}"))) (if_statement "if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" (if "if") (parenthesized_expression "(((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)))" (( "(") (binary_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&\n           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" (parenthesized_expression "((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2)))" (( "(") (binary_expression "(uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))" (binary_expression "(uint)uVar3 * iVar9" (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3")) (* "*") (identifier "iVar9")) (< "<") (call_expression "(uint)((int)puVar14 + (0x34 - param_2))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar14 + (0x34 - param_2))" (( "(") (binary_expression "(int)puVar14 + (0x34 - param_2)" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (parenthesized_expression "(0x34 - param_2)" (( "(") (binary_expression "0x34 - param_2" (number_literal "0x34") (- "-") (identifier "param_2")) () ")"))) () ")")))) () ")")) (&& "&&") (parenthesized_expression "((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))" (( "(") (comma_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28)" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(puVar17,iVar10)" (( "(") (identifier "puVar17") (, ",") (identifier "iVar10") () ")"))) (, ",") (binary_expression "1 < *(int *)(param_4 + 0x28)" (number_literal "1") (< "<") (pointer_expression "*(int *)(param_4 + 0x28)" (* "*") (cast_expression "(int *)(param_4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x28)" (( "(") (binary_expression "param_4 + 0x28" (identifier "param_4") (+ "+") (number_literal "0x28")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n          iVar9 = 0xf;\n          goto LAB_00014fa8;\n        }" ({ "{") (expression_statement "iVar9 = 0xf;" (assignment_expression "iVar9 = 0xf" (identifier "iVar9") (= "=") (number_literal "0xf")) (; ";")) (goto_statement "goto LAB_00014fa8;" (goto "goto") (statement_identifier "LAB_00014fa8") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40))" (( "(") (binary_expression "iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40)" (identifier "iVar10") (< "<") (binary_expression "(int)(uint)*(ushort *)(param_4 + 0x40)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(param_4 + 0x40)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (; ";")) (} "}"))) (if_statement "if (puVar24 == (undefined *)0x3) {\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" (if "if") (parenthesized_expression "(puVar24 == (undefined *)0x3)" (( "(") (binary_expression "puVar24 == (undefined *)0x3" (identifier "puVar24") (== "==") (cast_expression "(undefined *)0x3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n      iVar9 = *(int *)(param_4 + 0x18);\n      goto LAB_00014d34;\n    }" ({ "{") (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_4 + 0x18)" (* "*") (cast_expression "(int *)(param_4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto LAB_00014d34;" (goto "goto") (statement_identifier "LAB_00014d34") (; ";")) (} "}"))) (labeled_statement "LAB_00014b74:\n    local_c0 = param_4 + 0x94;" (statement_identifier "LAB_00014b74") (: ":") (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" (identifier "local_c0") (= "=") (binary_expression "param_4 + 0x94" (identifier "param_4") (+ "+") (number_literal "0x94"))) (; ";"))) (if_statement "if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }\n    else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" (if "if") (parenthesized_expression "(((int)param_3 < 0x401) || (6 < (int)puVar24))" (( "(") (binary_expression "((int)param_3 < 0x401) || (6 < (int)puVar24)" (parenthesized_expression "((int)param_3 < 0x401)" (( "(") (binary_expression "(int)param_3 < 0x401" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x401")) () ")")) (|| "||") (parenthesized_expression "(6 < (int)puVar24)" (( "(") (binary_expression "6 < (int)puVar24" (number_literal "6") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")"))) () ")")) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);\n      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);\n    }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6ff0,param_3)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6ff0" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6ff0")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);" (call_expression "(*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0002b314)" (( "(") (pointer_expression "*(code *)PTR_hex2stderr_0002b314" (* "*") (cast_expression "(code *)PTR_hex2stderr_0002b314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stderr_0002b314"))) () ")")) (argument_list "(param_2,param_3,1)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);\n      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);\n    }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x7058)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x7058" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7058")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);" (call_expression "(*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1)" (parenthesized_expression "(*(code *)PTR_hex2stdout_0002b398)" (( "(") (pointer_expression "*(code *)PTR_hex2stdout_0002b398" (* "*") (cast_expression "(code *)PTR_hex2stdout_0002b398" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stdout_0002b398"))) () ")")) (argument_list "(param_2,0x400,1)" (( "(") (identifier "param_2") (, ",") (number_literal "0x400") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x7020" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7020")) (, ",") (identifier "param_3") (, ",") (identifier "local_c0") () ")"))) (; ";")) (} "}")))) (} "}"))))) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_4 + 0x18)" (* "*") (cast_expression "(int *)(param_4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (labeled_statement "LAB_00014d34:\n  if (iVar9 != 0) goto LAB_00014fec;" (statement_identifier "LAB_00014d34") (: ":") (if_statement "if (iVar9 != 0) goto LAB_00014fec;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00014fec;" (goto "goto") (statement_identifier "LAB_00014fec") (; ";")))) (do_statement "do {\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    local_c0 = param_4 + 0x94;\n    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();\n    if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }\nLAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" (identifier "local_c0") (= "=") (binary_expression "param_4 + 0x94" (identifier "param_4") (+ "+") (number_literal "0x94"))) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();" (assignment_expression "iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_0002b3c0)" (( "(") (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_0002b3c0" (* "*") (cast_expression "(code *)PTR_construct_scsi_pt_obj_0002b3c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_construct_scsi_pt_obj_0002b3c0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }\n    else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);\n      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);\n    }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6f44,local_c0)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6f44" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f44")) (, ",") (identifier "local_c0") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(0xc)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_0002b34c"))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);\n      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);\n      if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }\n      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);\n      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);\n      if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);\n      puVar13 = local_6c;\n    }" ({ "{") (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_0002b2f0)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_0002b2f0" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_cdb_0002b2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_cdb_0002b2f0"))) () ")")) (argument_list "(iVar10,puVar13,local_c4)" (( "(") (identifier "iVar10") (, ",") (identifier "puVar13") (, ",") (identifier "local_c4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_0002b338)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_sense_0002b338" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_sense_0002b338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_sense_0002b338"))) () ")")) (argument_list "(iVar10,local_6c,0x40)" (( "(") (identifier "iVar10") (, ",") (identifier "local_6c") (, ",") (number_literal "0x40") () ")"))) (; ";")) (if_statement "if ((int)param_3 < 1) {\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }\n      else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" (if "if") (parenthesized_expression "((int)param_3 < 1)" (( "(") (binary_expression "(int)param_3 < 1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }\n      }" ({ "{") (if_statement "if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" (if "if") (parenthesized_expression "((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0'))" (( "(") (binary_expression "(puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')" (parenthesized_expression "(puVar24 != (undefined *)0x0)" (( "(") (binary_expression "puVar24 != (undefined *)0x0" (identifier "puVar24") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_4[0x10] == '\0')" (( "(") (binary_expression "param_4[0x10] == '\0'" (subscript_expression "param_4[0x10]" (identifier "param_4") ([ "[") (number_literal "0x10") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);\n        }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6f30,local_c0)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6f30" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f30")) (, ",") (identifier "local_c0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);\n      }" ({ "{") (expression_statement "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);" (call_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_out_0002b3c8)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_data_out_0002b3c8" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_data_out_0002b3c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_data_out_0002b3c8"))) () ")")) (argument_list "(iVar10,param_2,param_3)" (( "(") (identifier "iVar10") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);" (assignment_expression "uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_scsi_pt_0002b36c)\n                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_0002b36c)" (( "(") (pointer_expression "*(code *)PTR_do_scsi_pt_0002b36c" (* "*") (cast_expression "(code *)PTR_do_scsi_pt_0002b36c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_scsi_pt_0002b36c"))) () ")")) (argument_list "(iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24)" (( "(") (identifier "iVar10") (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x2c)" (( "(") (binary_expression "param_4 + 0x2c" (identifier "param_4") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (identifier "puVar24") () ")")))) (; ";")) (expression_statement "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);" (assignment_expression "iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)\n                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_0002b328)" (( "(") (pointer_expression "*(code *)PTR_sg_cmds_process_resp_0002b328" (* "*") (cast_expression "(code *)PTR_sg_cmds_process_resp_0002b328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_cmds_process_resp_0002b328"))) () ")")) (argument_list "(iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c)" (( "(") (identifier "iVar10") (, ",") (identifier "local_c0") (, ",") (identifier "uVar11") (, ",") (number_literal "0") (, ",") (identifier "local_6c") (, ",") (number_literal "1") (, ",") (identifier "puVar24") (, ",") (pointer_expression "&local_9c" (& "&") (identifier "local_9c")) () ")")))) (; ";")) (if_statement "if (iVar12 == -1) {\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }\n      else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar12 == -1)" (( "(") (binary_expression "iVar12 == -1" (identifier "iVar12") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);\n        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);\n      }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);" (assignment_expression "uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_0002b3e0)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_0002b3e0" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_os_err_0002b3e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_os_err_0002b3e0"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(uVar11)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_0002b34c"))) () ")")) (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar9 = 0;\n        if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar12 == -2) {\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == -2)" (( "(") (binary_expression "iVar12 == -2" (identifier "iVar12") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n          if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }\n        }" ({ "{") (if_statement "if (local_9c == 3) {\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }\n          else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(local_9c == 3)" (( "(") (binary_expression "local_9c == 3" (identifier "local_9c") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n            local_94 = 0;\n            local_98 = 0;\n            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);\n            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);\n            iVar9 = local_9c;\n            if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);" (assignment_expression "puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" (identifier "puVar24") (= "=") (cast_expression "(undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_sense_len_0002b32c" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_sense_len_0002b32c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_sense_len_0002b32c"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))))) (; ";")) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_info_fld_0002b2f4)" (( "(") (pointer_expression "*(code *)PTR_sg_get_sense_info_fld_0002b2f4" (* "*") (cast_expression "(code *)PTR_sg_get_sense_info_fld_0002b2f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_get_sense_info_fld_0002b2f4"))) () ")")) (argument_list "(local_6c,puVar24,&local_98)" (( "(") (identifier "local_6c") (, ",") (identifier "puVar24") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")")))) (; ";")) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (if_statement "if (iVar12 != 0) {\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);\n              puVar22 = PTR_0002b2d4;\n              if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6f08)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6f08" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f08")) () ")"))) (; ";")) (expression_statement "puVar22 = PTR_0002b2d4;" (assignment_expression "puVar22 = PTR_0002b2d4" (identifier "puVar22") (= "=") (identifier "PTR_0002b2d4")) (; ";")) (if_statement "if (param_4[9] == '\0') {\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }\n              else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(param_4[9] == '\0')" (( "(") (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);\n                iVar9 = local_9c;\n              }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6e50)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6e50" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6e50")) () ")"))) (; ";")) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (} "}")) (else_clause "else {\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }\n                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);\n                iVar9 = local_9c;\n                param_3 = puVar22;\n                if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }\n              }" ({ "{") (if_statement "if (local_98 == 0 && local_94 == 0) {\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }\n                else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" (if "if") (parenthesized_expression "(local_98 == 0 && local_94 == 0)" (( "(") (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" (identifier "local_98") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_94 == 0" (identifier "local_94") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);\n                }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6ee0" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6ee0")) (, ",") (binary_expression "PTR_0002b2d4 + 0x6794" (identifier "PTR_0002b2d4") (+ "+") (number_literal "0x6794")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" (else "else") (compound_statement "{\n                  (*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));\n                }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,\n                             (uint)(local_94 - 1 < local_94) + (local_98 - 1))" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6ecc" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6ecc")) (, ",") (binary_expression "PTR_0002b2d4 + 0x6794" (identifier "PTR_0002b2d4") (+ "+") (number_literal "0x6794")) (, ",") (binary_expression "(uint)(local_94 - 1 < local_94) + (local_98 - 1)" (call_expression "(uint)(local_94 - 1 < local_94)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_94 - 1 < local_94)" (( "(") (binary_expression "local_94 - 1 < local_94" (binary_expression "local_94 - 1" (identifier "local_94") (- "-") (number_literal "1")) (< "<") (identifier "local_94")) () ")"))) (+ "+") (parenthesized_expression "(local_98 - 1)" (( "(") (binary_expression "local_98 - 1" (identifier "local_98") (- "-") (number_literal "1")) () ")"))) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98);" (assignment_expression "iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)\n                                   (local_6c,puVar24,&local_98)" (parenthesized_expression "(*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)" (( "(") (pointer_expression "*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" (* "*") (cast_expression "(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_get_sense_cmd_spec_fld_0002b344"))) () ")")) (argument_list "(local_6c,puVar24,&local_98)" (( "(") (identifier "local_6c") (, ",") (identifier "puVar24") (, ",") (pointer_expression "&local_98" (& "&") (identifier "local_98")) () ")")))) (; ";")) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (expression_statement "param_3 = puVar22;" (assignment_expression "param_3 = puVar22" (identifier "param_3") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (iVar12 != 0) {\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }\n                }" ({ "{") (if_statement "if (local_98 == 0 && local_94 == 0) {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }\n                  else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" (if "if") (parenthesized_expression "(local_98 == 0 && local_94 == 0)" (( "(") (binary_expression "local_98 == 0 && local_94 == 0" (binary_expression "local_98 == 0" (identifier "local_98") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_94 == 0" (identifier "local_94") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);\n                    iVar9 = local_9c;\n                  }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6eb8)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6eb8" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6eb8")) () ")"))) (; ";")) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (} "}")) (else_clause "else {\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" (else "else") (compound_statement "{\n                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);\n                    iVar9 = local_9c;\n                  }" ({ "{") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6e7c" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6e7c")) (, ",") (binary_expression "puVar22 + 0x6794" (identifier "puVar22") (+ "+") (number_literal "0x6794")) () ")"))) (; ";")) (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" (else "else") (compound_statement "{\n            iVar9 = local_9c;\n            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }\n          }" ({ "{") (expression_statement "iVar9 = local_9c;" (assignment_expression "iVar9 = local_9c" (identifier "iVar9") (= "=") (identifier "local_9c")) (; ";")) (if_statement "if ((2 < local_9c) && (local_9c - 0x14U < 2)) {\n              iVar9 = 0;\n            }" (if "if") (parenthesized_expression "((2 < local_9c) && (local_9c - 0x14U < 2))" (( "(") (binary_expression "(2 < local_9c) && (local_9c - 0x14U < 2)" (parenthesized_expression "(2 < local_9c)" (( "(") (binary_expression "2 < local_9c" (number_literal "2") (< "<") (identifier "local_9c")) () ")")) (&& "&&") (parenthesized_expression "(local_9c - 0x14U < 2)" (( "(") (binary_expression "local_9c - 0x14U < 2" (binary_expression "local_9c - 0x14U" (identifier "local_9c") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              iVar9 = 0;\n            }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0002b360)" (( "(") (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0002b360" (* "*") (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0002b360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_destruct_scsi_pt_obj_0002b360"))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "puVar13 = local_6c;" (assignment_expression "puVar13 = local_6c" (identifier "puVar13") (= "=") (identifier "local_6c")) (; ";")) (} "}")))) (labeled_statement "LAB_00014fa8:\n    while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" (statement_identifier "LAB_00014fa8") (: ":") (while_statement "while( true ) {\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }\n      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);\n      local_84 = 0x10;\n      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);\n      if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }\n      if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }\n      local_78 = *(undefined4 *)(param_4 + 0x60);\n      local_c4 = 0x20;\n      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));\n      local_70 = *(undefined4 *)(param_4 + 0x54);\nLAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;\nLAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);\n      if (iVar9 == 0) break;\n      if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }\n      puVar24 = PTR_DAT_0002b2d8;\n      if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }\n        (*(code *)PTR___stack_chk_fail_0002b3a8)();\nLAB_00015740:\n        uVar11 = 0x20;\n        if (param_4[10] != '\0') break;\nLAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);\n        iVar9 = 1;\n      }" ({ "{") (if_statement "if (local_2c == *(int *)puVar7) {\n          return iVar9;\n        }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar7)" (( "(") (binary_expression "local_2c == *(int *)puVar7" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7")))) () ")")) (compound_statement "{\n          return iVar9;\n        }" ({ "{") (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_0002b3a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002b3a8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002b3a8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002b3a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002b3a8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00015740:\n        uVar11 = 0x20;" (statement_identifier "LAB_00015740") (: ":") (expression_statement "uVar11 = 0x20;" (assignment_expression "uVar11 = 0x20" (identifier "uVar11") (= "=") (number_literal "0x20")) (; ";"))) (if_statement "if (param_4[10] != '\0') break;" (if "if") (parenthesized_expression "(param_4[10] != '\0')" (( "(") (binary_expression "param_4[10] != '\0'" (subscript_expression "param_4[10]" (identifier "param_4") ([ "[") (number_literal "10") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00014c10:\n        (*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" (statement_identifier "LAB_00014c10") (: ":") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)\n                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x717c" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x717c")) (, ",") (binary_expression "PTR_DAT_0002b2d8 + -0x50e8" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x50e8")) (, ",") (identifier "uVar11") () ")"))) (; ";"))) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_88 = *(undefined1 (*) [2])(param_4 + 0x42);" (assignment_expression "local_88 = *(undefined1 (*) [2])(param_4 + 0x42)" (identifier "local_88") (= "=") (pointer_expression "*(undefined1 (*) [2])(param_4 + 0x42)" (* "*") (cast_expression "(undefined1 (*) [2])(param_4 + 0x42)" (( "(") (type_descriptor "undefined1 (*) [2]" (type_identifier "undefined1") (abstract_array_declarator "(*) [2]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "2") (] "]"))) () ")") (parenthesized_expression "(param_4 + 0x42)" (( "(") (binary_expression "param_4 + 0x42" (identifier "param_4") (+ "+") (number_literal "0x42")) () ")"))))) (; ";")) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" (identifier "local_84") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);" (assignment_expression "auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "(byte)((*(uint *)(param_4 + 0x34) & 7) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*(uint *)(param_4 + 0x34) & 7) << 5)" (( "(") (binary_expression "(*(uint *)(param_4 + 0x34) & 7) << 5" (parenthesized_expression "(*(uint *)(param_4 + 0x34) & 7)" (( "(") (binary_expression "*(uint *)(param_4 + 0x34) & 7" (pointer_expression "*(uint *)(param_4 + 0x34)" (* "*") (cast_expression "(uint *)(param_4 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (& "&") (number_literal "7")) () ")")) (<< "<<") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (param_4[0xe] != '\0') {\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" (if "if") (parenthesized_expression "(param_4[0xe] != '\0')" (( "(") (binary_expression "param_4[0xe] != '\0'" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 0x10;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 0x10;" (assignment_expression "auStack_82[0] = auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 0x10" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (param_4[0xf] != '\0') {\n        auStack_82[0] = auStack_82[0] | 8;\n      }" (if "if") (parenthesized_expression "(param_4[0xf] != '\0')" (( "(") (binary_expression "param_4[0xf] != '\0'" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        auStack_82[0] = auStack_82[0] | 8;\n      }" ({ "{") (expression_statement "auStack_82[0] = auStack_82[0] | 8;" (assignment_expression "auStack_82[0] = auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "auStack_82[0] | 8" (subscript_expression "auStack_82[0]" (identifier "auStack_82") ([ "[") (number_literal "0") (] "]")) (| "|") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "local_78 = *(undefined4 *)(param_4 + 0x60);" (assignment_expression "local_78 = *(undefined4 *)(param_4 + 0x60)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x60)" (( "(") (binary_expression "param_4 + 0x60" (identifier "param_4") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "local_c4 = 0x20;" (assignment_expression "local_c4 = 0x20" (identifier "local_c4") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));" (assignment_expression "local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (identifier "local_74") (= "=") (call_expression "CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (identifier "CONCAT22") (argument_list "(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44))" (( "(") (pointer_expression "*(undefined2 *)(param_4 + 0x3a)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3a)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3a)" (( "(") (binary_expression "param_4 + 0x3a" (identifier "param_4") (+ "+") (number_literal "0x3a")) () ")")))) (, ",") (pointer_expression "*(undefined2 *)(param_4 + 0x44)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x44)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x44)" (( "(") (binary_expression "param_4 + 0x44" (identifier "param_4") (+ "+") (number_literal "0x44")) () ")")))) () ")")))) (; ";")) (expression_statement "local_70 = *(undefined4 *)(param_4 + 0x54);" (assignment_expression "local_70 = *(undefined4 *)(param_4 + 0x54)" (identifier "local_70") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x54)" (( "(") (binary_expression "param_4 + 0x54" (identifier "param_4") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (labeled_statement "LAB_00014e70:\n      if (1 < (int)puVar24) goto LAB_00014f44;" (statement_identifier "LAB_00014e70") (: ":") (if_statement "if (1 < (int)puVar24) goto LAB_00014f44;" (if "if") (parenthesized_expression "(1 < (int)puVar24)" (( "(") (binary_expression "1 < (int)puVar24" (number_literal "1") (< "<") (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24"))) () ")")) (goto_statement "goto LAB_00014f44;" (goto "goto") (statement_identifier "LAB_00014f44") (; ";")))) (labeled_statement "LAB_00014e7c:\n      iVar9 = *(int *)(param_4 + 0x18);" (statement_identifier "LAB_00014e7c") (: ":") (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_4 + 0x18)" (* "*") (cast_expression "(int *)(param_4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (puVar24 != (undefined *)0x0) {\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" (if "if") (parenthesized_expression "(puVar24 != (undefined *)0x0)" (( "(") (binary_expression "puVar24 != (undefined *)0x0" (identifier "puVar24") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00014fec:\n        local_c0 = param_4 + 0x94;\n        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);\n        iVar9 = *(int *)(param_4 + 0x18);\n      }" ({ "{") (labeled_statement "LAB_00014fec:\n        local_c0 = param_4 + 0x94;" (statement_identifier "LAB_00014fec") (: ":") (expression_statement "local_c0 = param_4 + 0x94;" (assignment_expression "local_c0 = param_4 + 0x94" (identifier "local_c0") (= "=") (binary_expression "param_4 + 0x94" (identifier "param_4") (+ "+") (number_literal "0x94"))) (; ";"))) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6fc4,local_c0)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6fc4" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6fc4")) (, ",") (identifier "local_c0") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(param_4 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_4 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_4 + 0x18)" (* "*") (cast_expression "(int *)(param_4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar24 = PTR_DAT_0002b2d8;" (assignment_expression "puVar24 = PTR_DAT_0002b2d8" (identifier "puVar24") (= "=") (identifier "PTR_DAT_0002b2d8")) (; ";")) (if_statement "if (iVar9 < 2) {\n        iVar9 = 0;\n      }\n      else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar9 < 2)" (( "(") (binary_expression "iVar9 < 2" (identifier "iVar9") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar9 = 0;\n      }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);\n        if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);" (assignment_expression "puVar13 = (undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)\n                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (parenthesized_expression "(*(code *)PTR_open64_0002b368)" (( "(") (pointer_expression "*(code *)PTR_open64_0002b368" (* "*") (cast_expression "(code *)PTR_open64_0002b368" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_open64_0002b368"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6f94" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f94")) (, ",") (number_literal "0x301") (, ",") (number_literal "0x1a4") () ")"))))) (; ";")) (if_statement "if ((int)puVar13 < 0) {\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }\n        else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)puVar13 < 0)" (( "(") (binary_expression "(int)puVar13 < 0" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n          puVar13 = (undefined4 *)*puVar13;\n          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);\n          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);\n        }" ({ "{") (expression_statement "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0002b354" (* "*") (cast_expression "(code *)PTR___errno_location_0002b354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0002b354"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar13 = (undefined4 *)*puVar13;" (assignment_expression "puVar13 = (undefined4 *)*puVar13" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" (( "(") (pointer_expression "*(code *)PTR_perror_0002b3a0" (* "*") (cast_expression "(code *)PTR_perror_0002b3a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_0002b3a0"))) () ")")) (argument_list "(puVar24 + -0x6f94)" (( "(") (binary_expression "puVar24 + -0x6f94" (identifier "puVar24") (+ "+") (number_literal "-0x6f94")) () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar13)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_0002b34c"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);\n          if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);" (assignment_expression "iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_write_0002b370)(puVar13,param_2,param_3)" (parenthesized_expression "(*(code *)PTR_write_0002b370)" (( "(") (pointer_expression "*(code *)PTR_write_0002b370" (* "*") (cast_expression "(code *)PTR_write_0002b370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_write_0002b370"))) () ")")) (argument_list "(puVar13,param_2,param_3)" (( "(") (identifier "puVar13") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar9 < 0) {\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }\n          else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();\n            puVar22 = puVar24 + -0x6f94;\n            puVar24 = (undefined *)*puVar14;\n            (*(code *)PTR_perror_0002b3a0)(puVar22);\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);\n          }" ({ "{") (expression_statement "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();" (assignment_expression "puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)()" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0002b354)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0002b354)()" (parenthesized_expression "(*(code *)PTR___errno_location_0002b354)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0002b354" (* "*") (cast_expression "(code *)PTR___errno_location_0002b354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0002b354"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar22 = puVar24 + -0x6f94;" (assignment_expression "puVar22 = puVar24 + -0x6f94" (identifier "puVar22") (= "=") (binary_expression "puVar24 + -0x6f94" (identifier "puVar24") (+ "+") (number_literal "-0x6f94"))) (; ";")) (expression_statement "puVar24 = (undefined *)*puVar14;" (assignment_expression "puVar24 = (undefined *)*puVar14" (identifier "puVar24") (= "=") (cast_expression "(undefined *)*puVar14" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (; ";")) (expression_statement "(*(code *)PTR_perror_0002b3a0)(puVar22);" (call_expression "(*(code *)PTR_perror_0002b3a0)(puVar22)" (parenthesized_expression "(*(code *)PTR_perror_0002b3a0)" (( "(") (pointer_expression "*(code *)PTR_perror_0002b3a0" (* "*") (cast_expression "(code *)PTR_perror_0002b3a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_perror_0002b3a0"))) () ")")) (argument_list "(puVar22)" (( "(") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" (( "(") (pointer_expression "*(code *)PTR_close_0002b2fc" (* "*") (cast_expression "(code *)PTR_close_0002b2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0002b2fc"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);" (assignment_expression "iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" (identifier "iVar9") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_0002b34c)(puVar24)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_0002b34c)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_0002b34c" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_0002b34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_0002b34c"))) () ")")) (argument_list "(puVar24)" (( "(") (identifier "puVar24") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" (else "else") (compound_statement "{\n            (*(code *)PTR_close_0002b2fc)(puVar13);\n            (*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);\n            if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }\n          }" ({ "{") (expression_statement "(*(code *)PTR_close_0002b2fc)(puVar13);" (call_expression "(*(code *)PTR_close_0002b2fc)(puVar13)" (parenthesized_expression "(*(code *)PTR_close_0002b2fc)" (( "(") (pointer_expression "*(code *)PTR_close_0002b2fc" (* "*") (cast_expression "(code *)PTR_close_0002b2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_0002b2fc"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_0002b340" (* "*") (cast_expression "(code *)PTR___printf_chk_0002b340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_0002b340"))) () ")")) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94)" (( "(") (number_literal "1") (, ",") (binary_expression "PTR_DAT_0002b2d8 + -0x6f84" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f84")) (, ",") (identifier "param_3") (, ",") (binary_expression "puVar24 + -0x6f94" (identifier "puVar24") (+ "+") (number_literal "-0x6f94")) () ")"))) (; ";")) (if_statement "if (param_4[9] == '\0') {\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }\n            else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" (if "if") (parenthesized_expression "(param_4[9] == '\0')" (( "(") (binary_expression "param_4[9] == '\0'" (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              (*(code *)PTR_putchar_0002b358)(10);\n              iVar9 = 0;\n            }" ({ "{") (expression_statement "(*(code *)PTR_putchar_0002b358)(10);" (call_expression "(*(code *)PTR_putchar_0002b358)(10)" (parenthesized_expression "(*(code *)PTR_putchar_0002b358)" (( "(") (pointer_expression "*(code *)PTR_putchar_0002b358" (* "*") (cast_expression "(code *)PTR_putchar_0002b358" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_putchar_0002b358"))) () ")")) (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" (else "else") (compound_statement "{\n              (*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));\n              iVar9 = 0;\n            }" ({ "{") (expression_statement "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));" (call_expression "(*(code *)PTR___printf_chk_0002b340)\n                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" (parenthesized_expression "(*(code *)PTR___printf_chk_0002b340)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_0002b340" (* "*") (cast_expression "(code *)PTR___printf_chk_0002b340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_0002b340"))) () ")")) (argument_list "(1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),\n                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40))" (( "(") (number_literal "1") (, ",") (binary_expression "PTR_DAT_0002b2d8 + -0x6f6c" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6f6c")) (, ",") (pointer_expression "*(undefined2 *)(param_4 + 0x3e)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x3e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3e)" (( "(") (binary_expression "param_4 + 0x3e" (identifier "param_4") (+ "+") (number_literal "0x3e")) () ")")))) (, ",") (binary_expression "PTR_0002b2d4 + 0x6794" (identifier "PTR_0002b2d4") (+ "+") (number_literal "0x6794")) (, ",") (pointer_expression "*(undefined2 *)(param_4 + 0x40)" (* "*") (cast_expression "(undefined2 *)(param_4 + 0x40)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x40)" (( "(") (binary_expression "param_4 + 0x40" (identifier "param_4") (+ "+") (number_literal "0x40")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_00014f44:\n  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" (statement_identifier "LAB_00014f44") (: ":") (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x7158" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x7158")) (, ",") (binary_expression "param_4 + 0x94" (identifier "param_4") (+ "+") (number_literal "0x94")) () ")"))) (; ";"))) (expression_statement "puVar22 = PTR_DAT_0002b2d8 + -29000;" (assignment_expression "puVar22 = PTR_DAT_0002b2d8 + -29000" (identifier "puVar22") (= "=") (binary_expression "PTR_DAT_0002b2d8 + -29000" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-29000"))) (; ";")) (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" (identifier "puVar14") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);" (do "do") (compound_statement "{\n    puVar25 = (undefined4 *)((int)puVar14 + 1);\n    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);\n    puVar14 = puVar25;\n  }" ({ "{") (expression_statement "puVar25 = (undefined4 *)((int)puVar14 + 1);" (assignment_expression "puVar25 = (undefined4 *)((int)puVar14 + 1)" (identifier "puVar25") (= "=") (cast_expression "(undefined4 *)((int)puVar14 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 1)" (( "(") (binary_expression "(int)puVar14 + 1" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(puVar22,*(undefined1 *)puVar14)" (( "(") (identifier "puVar22") (, ",") (pointer_expression "*(undefined1 *)puVar14" (* "*") (cast_expression "(undefined1 *)puVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) () ")"))) (; ";")) (expression_statement "puVar14 = puVar25;" (assignment_expression "puVar14 = puVar25" (identifier "puVar14") (= "=") (identifier "puVar25")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)((int)puVar13 + local_c4) != puVar25)" (( "(") (binary_expression "(undefined4 *)((int)puVar13 + local_c4) != puVar25" (cast_expression "(undefined4 *)((int)puVar13 + local_c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar13 + local_c4)" (( "(") (binary_expression "(int)puVar13 + local_c4" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (+ "+") (identifier "local_c4")) () ")"))) (!= "!=") (identifier "puVar25")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);" (call_expression "(*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018)" (parenthesized_expression "(*(code *)PTR_pr2serr_0002b3a4)" (( "(") (pointer_expression "*(code *)PTR_pr2serr_0002b3a4" (* "*") (cast_expression "(code *)PTR_pr2serr_0002b3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2serr_0002b3a4"))) () ")")) (argument_list "(PTR_DAT_0002b2d8 + -0x6018)" (( "(") (binary_expression "PTR_DAT_0002b2d8 + -0x6018" (identifier "PTR_DAT_0002b2d8") (+ "+") (number_literal "-0x6018")) () ")"))) (; ";")) (expression_statement "cVar23 = param_4[9];" (assignment_expression "cVar23 = param_4[9]" (identifier "cVar23") (= "=") (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (goto_statement "goto LAB_00014b48;" (goto "goto") (statement_identifier "LAB_00014b48") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) 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: (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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (number_literal) right: (identifier))) right: (number_literal)))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (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)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (subscript_expression argument: (identifier) index: (number_literal))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier))) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (subscript_expression argument: (identifier) index: (number_literal))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) right: (number_literal)) right: (number_literal)))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (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: (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: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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)) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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)) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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))))) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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))))) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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))))) (field_expression argument: (identifier) field: (field_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)) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (field_expression argument: (identifier) field: (field_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))))) right: (parenthesized_expression (comma_expression left: (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))) right: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) 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)) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal))))) alternative: (else_clause (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))))) (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) (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 (binary_expression left: (identifier) right: (number_literal)) (identifier) (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))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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 (number_literal)))))) alternative: (else_clause (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 (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))))) 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)) (identifier))))))) alternative: (else_clause (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 (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) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (identifier) (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: (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (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) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (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)))))) alternative: (else_clause (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)) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (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) (identifier) (pointer_expression argument: (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: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (identifier)))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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 (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (labeled_statement label: (statement_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)) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (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: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_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 (binary_expression left: (identifier) right: (number_literal)) (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 (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal)))))) (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (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: (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 (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) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (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: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (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)))) (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)))))) alternative: (else_clause (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 (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) 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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))))))))))) condition: (parenthesized_expression (true))) (labeled_statement label: (statement_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)) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))))

int MASKED(undefined4 param_1,int param_2,undefined *param_3,char *param_4)

{
  undefined1 *puVar1;
  char cVar2;
  ushort uVar3;
  uint *puVar4;
  undefined1 uVar5;
  undefined2 uVar6;
  undefined *puVar7;
  undefined1 auVar8 [4];
  byte bVar18;
  int iVar9;
  int iVar10;
  undefined4 uVar11;
  int iVar12;
  byte bVar19;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined *puVar20;
  uint uVar21;
  undefined *puVar22;
  char cVar23;
  undefined *puVar24;
  undefined4 *puVar25;
  int local_c4;
  char *local_c0;
  int local_9c;
  undefined4 local_98;
  uint local_94;
  undefined1 local_8c [4];
  undefined1 local_88 [2];
  byte bStack_86;
  undefined1 uStack_85;
  undefined2 local_84;
  undefined1 auStack_82 [2];
  undefined1 local_80 [3];
  undefined1 uStack_7d;
  uint local_7c;
  undefined4 local_78;
  undefined4 local_74;
  undefined4 local_70;
  undefined4 local_6c [16];
  int local_2c;
  
  puVar7 = PTR___stack_chk_guard_0002b3b8;
  bVar19 = (byte)*(undefined4 *)(param_4 + 0x1c);
  bVar18 = bVar19 & 0x1f;
  puVar13 = (undefined4 *)local_8c;
  local_8c = (undefined1  [4])0x0;
  local_88 = (undefined1  [2])0x0;
  bStack_86 = 0;
  uStack_85 = 0;
  local_84 = 0;
  auStack_82[0] = 0;
  auStack_82[1] = 0;
  _local_80 = 0;
  local_7c = 0;
  local_78 = 0;
  local_74 = 0;
  local_70 = 0;
  puVar24 = *(undefined **)(param_4 + 0x30);
  cVar23 = param_4[9];
  cVar2 = param_4[0xc];
  local_2c = *(int *)PTR___stack_chk_guard_0002b3b8;
  if (*param_4 != '\0') {
    if (cVar23 == '\0') {
      local_98 = *(uint *)(param_4 + 0x68);
      local_94 = *(uint *)(param_4 + 0x6c);
      puVar1 = local_8c + 2;
      uVar21 = (uint)puVar1 & 3;
      *(uint *)(puVar1 + -uVar21) =
           *(uint *)(puVar1 + -uVar21) & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
      puVar1 = local_88 + 1;
      uVar21 = (uint)puVar1 & 3;
      *(uint *)(puVar1 + -uVar21) =
           *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
           local_98 << (3 - uVar21) * 8;
      bStack_86 = (byte)(local_94 >> 0x18);
      uStack_85 = (undefined1)(local_94 >> 0x10);
      local_84 = (undefined2)local_94;
    }
    uVar6 = CONCAT11(bVar19,uStack_7d);
    _local_80 = CONCAT22(local_80._0_2_,uVar6) & 0xffff1fff;
    if (cVar2 == '\0') {
      if (param_4[3] != '\0') {
        if (0xffff < *(uint *)(param_4 + 0x54)) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x71b0);
          iVar9 = 1;
          goto LAB_00014fa8;
        }
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[0xe] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        if (param_4[0xf] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
        }
        local_8c[0] = 0x9c;
        _local_80 = CONCAT22((short)*(uint *)(param_4 + 0x54),uVar6) & 0xffff1fff;
        local_c4 = 0x10;
        auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x3c) >> 8);
        auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x3c);
        goto LAB_00014b3c;
      }
      if (param_4[5] == '\0') {
        if (param_4[8] == '\0') {
          if (cVar23 != '\0') {
            bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
            if (param_4[0xe] != '\0') {
              bVar18 = bVar18 | 0x10;
            }
            local_8c._2_2_ = (ushort)bVar18 << 8;
            if (param_4[0xf] != '\0') {
              local_8c._2_2_ = local_8c._2_2_ | 0x800;
            }
            local_8c._0_2_ = 0x9f12;
            uVar21 = *(uint *)(param_4 + 0x14);
            if (uVar21 != 0) {
              if ((uVar21 & 1) != 0) {
                _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff |
                            0x4000;
              }
              if ((uVar21 & 2) != 0) {
                _local_80 = _local_80 | 0x8000;
              }
              if ((uVar21 & 4) != 0) {
                local_8c._2_2_ = local_8c._2_2_ | 0x100;
                local_8c._0_2_ = 0x9f12;
              }
            }
            local_98 = *(uint *)(param_4 + 0x54);
            local_c4 = 0x10;
            local_88 = (undefined1  [2])*(undefined2 *)(param_4 + 0x3e);
            local_84 = *(undefined2 *)(param_4 + 0x40);
            uVar21 = (uint)auStack_82 & 3;
            puVar4 = (uint *)(auStack_82 + -uVar21);
            *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
            puVar1 = local_80 + 1;
            uVar21 = (uint)puVar1 & 3;
            *(uint *)(puVar1 + -uVar21) =
                 *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
                 local_98 << (3 - uVar21) * 8;
            goto LAB_00014e70;
          }
          uVar11 = 0x10;
          if (param_4[10] == '\0') goto LAB_00014c10;
          bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
          if (param_4[0xe] != '\0') {
            bVar19 = bVar19 | 0x10;
          }
          local_8c._1_3_ = (uint3)bVar19 << 0x10;
          if (param_4[0xf] != '\0') {
            local_8c._1_3_ = local_8c._1_3_ | 0x80000;
          }
          local_8c[0] = 0x9a;
          auStack_82[0] = (byte)((ushort)*(undefined2 *)(param_4 + 0x42) >> 8);
          auStack_82[1] = (undefined1)*(undefined2 *)(param_4 + 0x42);
          local_c4 = 0x10;
          _local_80 = CONCAT22((short)*(undefined4 *)(param_4 + 0x54),uVar6) & 0xffff1fff;
          goto LAB_00014e70;
        }
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[2] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        if (param_4[0xb] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
        }
        local_8c[0] = 0x93;
        auVar8 = local_8c;
        local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);
        uVar5 = local_8c[1];
        local_8c = auVar8;
        if (param_4[0x10] != '\0') goto LAB_00014a98;
      }
      else {
        bVar19 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
        local_8c._1_3_ = (uint3)bVar19 << 0x10;
        if (param_4[0xe] != '\0') {
          local_8c._1_3_ = (uint3)bVar19 << 0x10 | 0x100000;
        }
        local_8c[0] = 0x8b;
        if (param_4[0xf] != '\0') {
          local_8c._1_3_ = local_8c._1_3_ | 0x80000;
          local_8c[0] = 0x8b;
        }
      }
    }
    else {
      bVar18 = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      local_8c._1_3_ = (uint3)bVar18 << 0x10;
      if (param_4[0xe] != '\0') {
        local_8c._1_3_ = (uint3)bVar18 << 0x10 | 0x100000;
      }
      if (param_4[0xf] != '\0') {
        local_8c._1_3_ = local_8c._1_3_ | 0x80000;
      }
      local_8c[0] = 0x8a;
      auVar8 = local_8c;
      uVar21 = *(uint *)(param_4 + 0x14);
      if (uVar21 != 0) {
        if ((uVar21 & 1) != 0) {
          _local_80 = CONCAT22(local_80._0_2_,CONCAT11(bVar19,uStack_7d)) & 0xffff1fff | 0x4000;
        }
        if ((uVar21 & 2) != 0) {
          _local_80 = _local_80 | 0x8000;
        }
        if ((uVar21 & 4) != 0) {
          local_8c[1] = (undefined1)((uint3)local_8c._1_3_ >> 0x10);
          uVar5 = local_8c[1];
          local_8c = auVar8;
LAB_00014a98:
          local_8c = (undefined1  [4])((uint)CONCAT11(local_8c[0],uVar5) << 0x10 | 0x10000);
        }
      }
    }
    local_98 = *(uint *)(param_4 + 0x54);
    local_c4 = 0x10;
    uVar21 = (uint)auStack_82 & 3;
    puVar4 = (uint *)(auStack_82 + -uVar21);
    *puVar4 = *puVar4 & -1 << (4 - uVar21) * 8 | local_98 >> uVar21 * 8;
    puVar1 = local_80 + 1;
    uVar21 = (uint)puVar1 & 3;
    *(uint *)(puVar1 + -uVar21) =
         *(uint *)(puVar1 + -uVar21) & 0xffffffffU >> (uVar21 + 1) * 8 |
         local_98 << (3 - uVar21) * 8;
    goto LAB_00014b3c;
  }
  local_8c = (undefined1  [4])0x7f000000;
  uStack_85 = 0x18;
  bStack_86 = bVar18;
  if (cVar23 == '\0') {
    local_98 = *(uint *)(param_4 + 0x68);
    local_94 = *(uint *)(param_4 + 0x6c);
    _local_80 = local_98;
    local_7c = local_94;
    if (cVar2 == '\0') goto LAB_00014c58;
LAB_00014adc:
    cVar2 = param_4[0xe];
    local_84 = 0xb;
    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
joined_r0x00014cf4:
    if (cVar2 != '\0') {
      auStack_82[0] = auStack_82[0] | 0x10;
    }
    if (param_4[0xf] != '\0') {
      auStack_82[0] = auStack_82[0] | 8;
    }
  }
  else {
    if (cVar2 != '\0') goto LAB_00014adc;
LAB_00014c58:
    if (param_4[3] != '\0') {
      local_88 = *(undefined1 (*) [2])(param_4 + 0x3c);
      cVar2 = param_4[0xe];
      local_84 = 0xf;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      goto joined_r0x00014cf4;
    }
    if (param_4[5] != '\0') {
      local_84 = 0xe;
      local_8c._0_2_ = 0x7f00;
      local_8c._2_2_ = *(undefined2 *)(param_4 + 0x38);
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_78 = *(undefined4 *)(param_4 + 0x58);
      local_74 = *(undefined4 *)(param_4 + 0x5c);
      local_c4 = 0x20;
      local_70 = *(undefined4 *)(param_4 + 0x54);
      goto LAB_00014b3c;
    }
    if (param_4[8] == '\0') {
      if (cVar23 == '\0') goto LAB_00015740;
      local_84 = 0x11;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_c4 = 0x20;
      _local_80 = CONCAT22(*(undefined2 *)(param_4 + 0x3e),stack0xffffff82);
      local_7c = CONCAT22(*(undefined2 *)(param_4 + 0x40),local_7c._2_2_);
      local_70 = *(undefined4 *)(param_4 + 0x54);
      goto LAB_00014e70;
    }
    local_84 = 0xd;
    auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
    if (param_4[2] != '\0') {
      auStack_82[0] = auStack_82[0] | 0x10;
    }
    if (param_4[0xb] != '\0') {
      auStack_82[0] = auStack_82[0] | 8;
    }
    if (param_4[0x10] != '\0') {
      auStack_82[0] = auStack_82[0] | 1;
    }
  }
  local_78 = *(undefined4 *)(param_4 + 0x60);
  local_c4 = 0x20;
  local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));
  local_70 = *(undefined4 *)(param_4 + 0x54);
LAB_00014b3c:
  if (1 < (int)puVar24) goto LAB_00014f44;
LAB_00014b48:
  if (cVar23 == '\0') {
LAB_00014b64:
    if ((int)puVar24 < 4) goto LAB_00014e7c;
    if (0 < (int)param_3) goto LAB_00014b74;
  }
  else {
    if ((int)puVar24 < 3) goto LAB_00014e7c;
    if ((int)param_3 < 0x20) goto LAB_00014b64;
    iVar9 = *(int *)(param_4 + 0x4c);
    uVar3 = *(ushort *)(param_4 + 0x3e);
    puVar14 = (undefined4 *)(param_2 + 0x20);
    (*(code *)PTR_pr2serr_0002b3a4)
              (PTR_DAT_0002b2d8 + -0x7140,param_4 + 0x94,PTR_0002b2d4 + 0x6794,
               *(undefined2 *)(param_4 + 0x40));
    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7118,(uint)uVar3 * iVar9,param_3);
    puVar22 = PTR_DAT_0002b2d8;
    if (*(short *)(param_4 + 0x40) != 0) {
      iVar10 = 0;
      puVar15 = PTR_DAT_0002b2d8 + -0x6018;
      puVar16 = PTR_DAT_0002b2d8 + -0x6ee4;
      puVar17 = PTR_DAT_0002b2d8 + -0x7098;
      do {
        local_94 = puVar14[1];
        local_98 = puVar14[2];
        puVar20 = puVar16;
        if (*param_4 != '\0') {
          puVar20 = puVar15;
        }
        (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70e0,iVar10,*puVar14,local_94,local_98,puVar20)
        ;
        if (param_4[1] != '\0') {
          local_98._2_2_ = (undefined2)puVar14[3];
          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x11),local_98._2_2_);
          local_98 = CONCAT13(*(undefined1 *)(puVar14 + 4),local_98._1_3_);
          uVar6 = local_98._0_2_;
          local_98._1_3_ = CONCAT12(*(undefined1 *)((int)puVar14 + 0x13),local_98._2_2_);
          local_98 = CONCAT13(*(undefined1 *)((int)puVar14 + 0x12),local_98._1_3_);
          (*(code *)PTR_pr2serr_0002b3a4)(puVar22 + -0x70b4,puVar14[3],uVar6,local_98._0_2_);
        }
        if (((uint)uVar3 * iVar9 < (uint)((int)puVar14 + (0x34 - param_2))) &&
           ((*(code *)PTR_pr2serr_0002b3a4)(puVar17,iVar10), 1 < *(int *)(param_4 + 0x28))) {
          iVar9 = 0xf;
          goto LAB_00014fa8;
        }
        iVar10 = iVar10 + 1;
        puVar14 = puVar14 + 8;
      } while (iVar10 < (int)(uint)*(ushort *)(param_4 + 0x40));
    }
    if (puVar24 == (undefined *)0x3) {
      iVar9 = *(int *)(param_4 + 0x18);
      goto LAB_00014d34;
    }
LAB_00014b74:
    local_c0 = param_4 + 0x94;
    if (((int)param_3 < 0x401) || (6 < (int)puVar24)) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ff0,param_3);
      (*(code *)PTR_hex2stderr_0002b314)(param_2,param_3,1);
    }
    else {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7058);
      (*(code *)PTR_hex2stdout_0002b398)(param_2,0x400,1);
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7020,param_3,local_c0);
    }
  }
  iVar9 = *(int *)(param_4 + 0x18);
LAB_00014d34:
  if (iVar9 != 0) goto LAB_00014fec;
  do {
    local_c0 = param_4 + 0x94;
    iVar10 = (*(code *)PTR_construct_scsi_pt_obj_0002b3c0)();
    if (iVar10 == 0) {
      (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f44,local_c0);
      iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(0xc);
    }
    else {
      (*(code *)PTR_set_scsi_pt_cdb_0002b2f0)(iVar10,puVar13,local_c4);
      (*(code *)PTR_set_scsi_pt_sense_0002b338)(iVar10,local_6c,0x40);
      if ((int)param_3 < 1) {
        if ((puVar24 != (undefined *)0x0) && (param_4[0x10] == '\0')) {
          (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f30,local_c0);
        }
      }
      else {
        (*(code *)PTR_set_scsi_pt_data_out_0002b3c8)(iVar10,param_2,param_3);
      }
      uVar11 = (*(code *)PTR_do_scsi_pt_0002b36c)
                         (iVar10,param_1,*(undefined4 *)(param_4 + 0x2c),puVar24);
      iVar12 = (*(code *)PTR_sg_cmds_process_resp_0002b328)
                         (iVar10,local_c0,uVar11,0,local_6c,1,puVar24,&local_9c);
      if (iVar12 == -1) {
        uVar11 = (*(code *)PTR_get_scsi_pt_os_err_0002b3e0)(iVar10);
        iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(uVar11);
      }
      else {
        iVar9 = 0;
        if (iVar12 == -2) {
          if (local_9c == 3) {
            local_94 = 0;
            local_98 = 0;
            puVar24 = (undefined *)(*(code *)PTR_get_scsi_pt_sense_len_0002b32c)(iVar10);
            iVar12 = (*(code *)PTR_sg_get_sense_info_fld_0002b2f4)(local_6c,puVar24,&local_98);
            iVar9 = local_9c;
            if (iVar12 != 0) {
              (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6f08);
              puVar22 = PTR_0002b2d4;
              if (param_4[9] == '\0') {
                (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e50);
                iVar9 = local_9c;
              }
              else {
                if (local_98 == 0 && local_94 == 0) {
                  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6ee0,PTR_0002b2d4 + 0x6794);
                }
                else {
                  (*(code *)PTR_pr2serr_0002b3a4)
                            (PTR_DAT_0002b2d8 + -0x6ecc,PTR_0002b2d4 + 0x6794,
                             (uint)(local_94 - 1 < local_94) + (local_98 - 1));
                }
                iVar12 = (*(code *)PTR_sg_get_sense_cmd_spec_fld_0002b344)
                                   (local_6c,puVar24,&local_98);
                iVar9 = local_9c;
                param_3 = puVar22;
                if (iVar12 != 0) {
                  if (local_98 == 0 && local_94 == 0) {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6eb8);
                    iVar9 = local_9c;
                  }
                  else {
                    (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6e7c,puVar22 + 0x6794);
                    iVar9 = local_9c;
                  }
                }
              }
            }
          }
          else {
            iVar9 = local_9c;
            if ((2 < local_9c) && (local_9c - 0x14U < 2)) {
              iVar9 = 0;
            }
          }
        }
      }
      (*(code *)PTR_destruct_scsi_pt_obj_0002b360)(iVar10);
      puVar13 = local_6c;
    }
LAB_00014fa8:
    while( true ) {
      while( true ) {
        if (local_2c == *(int *)puVar7) {
          return iVar9;
        }
        (*(code *)PTR___stack_chk_fail_0002b3a8)();
LAB_00015740:
        uVar11 = 0x20;
        if (param_4[10] != '\0') break;
LAB_00014c10:
        (*(code *)PTR_pr2serr_0002b3a4)
                  (PTR_DAT_0002b2d8 + -0x717c,PTR_DAT_0002b2d8 + -0x50e8,uVar11);
        iVar9 = 1;
      }
      local_88 = *(undefined1 (*) [2])(param_4 + 0x42);
      local_84 = 0x10;
      auStack_82[0] = (byte)((*(uint *)(param_4 + 0x34) & 7) << 5);
      if (param_4[0xe] != '\0') {
        auStack_82[0] = auStack_82[0] | 0x10;
      }
      if (param_4[0xf] != '\0') {
        auStack_82[0] = auStack_82[0] | 8;
      }
      local_78 = *(undefined4 *)(param_4 + 0x60);
      local_c4 = 0x20;
      local_74 = CONCAT22(*(undefined2 *)(param_4 + 0x3a),*(undefined2 *)(param_4 + 0x44));
      local_70 = *(undefined4 *)(param_4 + 0x54);
LAB_00014e70:
      if (1 < (int)puVar24) goto LAB_00014f44;
LAB_00014e7c:
      iVar9 = *(int *)(param_4 + 0x18);
      if (iVar9 == 0) break;
      if (puVar24 != (undefined *)0x0) {
LAB_00014fec:
        local_c0 = param_4 + 0x94;
        (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6fc4,local_c0);
        iVar9 = *(int *)(param_4 + 0x18);
      }
      puVar24 = PTR_DAT_0002b2d8;
      if (iVar9 < 2) {
        iVar9 = 0;
      }
      else {
        puVar13 = (undefined4 *)
                  (*(code *)PTR_open64_0002b368)(PTR_DAT_0002b2d8 + -0x6f94,0x301,0x1a4);
        if ((int)puVar13 < 0) {
          puVar13 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
          puVar13 = (undefined4 *)*puVar13;
          (*(code *)PTR_perror_0002b3a0)(puVar24 + -0x6f94);
          iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar13);
        }
        else {
          iVar9 = (*(code *)PTR_write_0002b370)(puVar13,param_2,param_3);
          if (iVar9 < 0) {
            puVar14 = (undefined4 *)(*(code *)PTR___errno_location_0002b354)();
            puVar22 = puVar24 + -0x6f94;
            puVar24 = (undefined *)*puVar14;
            (*(code *)PTR_perror_0002b3a0)(puVar22);
            (*(code *)PTR_close_0002b2fc)(puVar13);
            iVar9 = (*(code *)PTR_sg_convert_errno_0002b34c)(puVar24);
          }
          else {
            (*(code *)PTR_close_0002b2fc)(puVar13);
            (*(code *)PTR___printf_chk_0002b340)
                      (1,PTR_DAT_0002b2d8 + -0x6f84,param_3,puVar24 + -0x6f94);
            if (param_4[9] == '\0') {
              (*(code *)PTR_putchar_0002b358)(10);
              iVar9 = 0;
            }
            else {
              (*(code *)PTR___printf_chk_0002b340)
                        (1,PTR_DAT_0002b2d8 + -0x6f6c,*(undefined2 *)(param_4 + 0x3e),
                         PTR_0002b2d4 + 0x6794,*(undefined2 *)(param_4 + 0x40));
              iVar9 = 0;
            }
          }
        }
      }
    }
  } while( true );
LAB_00014f44:
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x7158,param_4 + 0x94);
  puVar22 = PTR_DAT_0002b2d8 + -29000;
  puVar14 = puVar13;
  do {
    puVar25 = (undefined4 *)((int)puVar14 + 1);
    (*(code *)PTR_pr2serr_0002b3a4)(puVar22,*(undefined1 *)puVar14);
    puVar14 = puVar25;
  } while ((undefined4 *)((int)puVar13 + local_c4) != puVar25);
  (*(code *)PTR_pr2serr_0002b3a4)(PTR_DAT_0002b2d8 + -0x6018);
  cVar23 = param_4[9];
  goto LAB_00014b48;
}

