
int sg_ll_read_buffer(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int mx_resp_len,
                     _Bool noisy,int verbose)

{
  uint3 uVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  undefined1 uVar8;
  undefined4 uVar7;
  int iVar9;
  byte bVar13;
  undefined *puVar10;
  char cVar14;
  uint uVar11;
  int *piVar12;
  int iVar15;
  uint8_t *puVar16;
  uint8_t *puVar17;
  uint8_t *puVar18;
  uint8_t *puVar19;
  uint8_t *unaff_s3;
  int *piVar20;
  int *piVar21;
  int iVar22;
  int *piVar23;
  uint8_t *unaff_s8;
  int *piVar24;
  code *pcVar25;
  code *pcVar26;
  int aiStack_274 [3];
  short sStack_268;
  undefined4 uStack_266;
  int iStack_224;
  int iStack_220;
  int iStack_21c;
  uint uStack_218;
  uint8_t *puStack_214;
  int *piStack_210;
  int *piStack_20c;
  uint uStack_208;
  int iStack_204;
  uint8_t *puStack_200;
  code *pcStack_1fc;
  int iStack_1f8;
  uint8_t *puStack_1e8;
  uint uStack_1e4;
  uint uStack_1e0;
  int *piStack_1dc;
  code *pcStack_1d8;
  int iStack_1cc;
  undefined4 uStack_1c8;
  undefined4 uStack_1c4;
  short sStack_1c0;
  uint8_t auStack_1be [2];
  uint8_t auStack_1bc [64];
  int iStack_17c;
  int iStack_178;
  int iStack_174;
  int *piStack_170;
  uint8_t *puStack_16c;
  int *piStack_168;
  int iStack_164;
  uint8_t *puStack_160;
  int iStack_15c;
  uint8_t *puStack_158;
  code *pcStack_154;
  uint8_t *puStack_140;
  uint uStack_13c;
  int *piStack_138;
  int *piStack_134;
  undefined *puStack_130;
  uint uStack_12c;
  int iStack_124;
  uint8_t uStack_120;
  byte bStack_11f;
  undefined1 uStack_11e;
  undefined1 uStack_11d;
  undefined2 uStack_11c;
  undefined1 uStack_11a;
  undefined1 uStack_119;
  undefined1 uStack_118;
  undefined1 uStack_117;
  uint8_t auStack_116 [2];
  uint8_t auStack_114 [64];
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  uint uStack_c8;
  uint8_t *puStack_c4;
  undefined *puStack_c0;
  undefined *puStack_bc;
  void *pvStack_b8;
  int iStack_b4;
  uint8_t *puStack_b0;
  code *pcStack_ac;
  uint8_t *local_98;
  uint local_94;
  uint local_90;
  int *local_8c;
  int sense_cat;
  uint8_t rbuf_cdb [10];
  uint8_t auStack_6e [2];
  uint8_t sense_b [64];
  
  puVar3 = PTR___stack_chk_guard_00054a4c;
  puVar2 = PTR_s_tatus_00054840;
  rbuf_cdb[1] = (byte)mode & 0x1f;
  rbuf_cdb[0] = '<';
  rbuf_cdb[9] = '\0';
  rbuf_cdb[2] = (uint8_t)buffer_id;
  rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10);
  rbuf_cdb._4_2_ = (undefined2)buffer_offset;
  rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10);
  rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8);
  rbuf_cdb[8] = (uint8_t)mx_resp_len;
  iVar15 = *(int *)PTR___stack_chk_guard_00054a4c;
  cVar14 = (char)PTR_s_tatus_00054840;
  if (verbose == 0) {
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 == 0) goto LAB_0002970c;
LAB_0002951c:
    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);
    unaff_s3 = sense_b;
    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);
    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);
    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);
    local_8c = &sense_cat;
    local_94 = (uint)noisy;
    bVar13 = cVar14 + 0x5c;
    local_90 = verbose;
    local_98 = unaff_s3;
    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);
    if (iVar6 == -1) {
      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);
      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = sense_cat;
      if (sense_cat - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else if ((verbose < 3) || (iVar6 < 1)) {
      iVar6 = 0;
    }
    else {
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);
      if (verbose == 3) {
        verbose = (int)(iVar6 < 0x101);
        if (verbose == 0) {
          puVar10 = PTR_s_tatus_00054840 + -0x1710;
        }
        else {
          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;
        }
        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);
        buffer_id = -1;
        iVar22 = 0;
        if (verbose != 0) {
          iVar22 = iVar6;
        }
        bVar13 = (byte)iVar22;
        (*(code *)PTR_hex2stderr_0005489c)(resp);
        iVar6 = 0;
      }
      else {
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);
        buffer_id = 0;
        (*(code *)PTR_hex2stderr_0005489c)(resp);
        bVar13 = (byte)iVar6;
        iVar6 = 0;
      }
    }
    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);
  }
  else {
    unaff_s8 = auStack_6e;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);
    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;
    puVar18 = rbuf_cdb;
    do {
      puVar16 = puVar18 + 1;
      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);
      puVar18 = puVar16;
    } while (unaff_s8 != puVar16);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 != 0) goto LAB_0002951c;
LAB_0002970c:
    bVar13 = cVar14 + 0x5c;
    iVar6 = -1;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);
    mx_resp_len = buffer_offset;
  }
  if (iVar15 == *(int *)puVar3) {
    return iVar6;
  }
  pcVar25 = sg_ll_write_buffer;
  puVar10 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  piVar12 = local_8c;
  uVar4 = local_94;
  puVar18 = local_98;
  puStack_130 = puVar10 + 0x33060;
  bStack_11f = bVar13 & 0x1f;
  puStack_c0 = puVar3;
  piVar20 = *(int **)(puVar10 + 0x2b29c);
  pvStack_b8 = resp;
  puStack_bc = puVar2;
  uStack_120 = ';';
  uStack_117 = 0;
  uStack_11e = (undefined1)buffer_id;
  uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10);
  uStack_11c = (undefined2)mx_resp_len;
  uStack_11a = (undefined1)(local_94 >> 0x10);
  uStack_119 = (undefined1)(local_94 >> 8);
  uStack_118 = (undefined1)local_94;
  iStack_d4 = *piVar20;
  iVar22 = *(int *)(puVar10 + 0x2b090);
  puVar16 = unaff_s8;
  iStack_d0 = iVar5;
  iStack_cc = iVar6;
  uStack_c8 = verbose;
  puStack_c4 = unaff_s3;
  iStack_b4 = sg_fd;
  puStack_b0 = unaff_s8;
  pcStack_ac = pcVar25;
  uVar8 = uStack_11e;
  if (local_8c == (int *)0x0) {
LAB_0002984c:
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
  }
  else {
    puVar16 = auStack_116;
    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);
    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);
    puVar19 = &uStack_120;
    do {
      puVar17 = puVar19 + 1;
      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);
      uVar8 = (undefined1)buffer_id;
      puVar19 = puVar17;
    } while (puVar16 != puVar17);
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
    if ((int)piVar12 < 2) goto LAB_0002984c;
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {
      (**(code **)(puStack_130 + -0x7f24))
                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);
      if (piVar12 == (int *)0x2) {
        if (0x100 < (int)uVar4) {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;
        }
        else {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;
        }
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);
        uVar8 = 0xff;
        uVar11 = 0x100;
        if (0x100 >= (int)uVar4) {
          uVar11 = uVar4;
        }
        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);
      }
      else {
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);
        uVar8 = 0;
        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);
      }
      goto LAB_0002984c;
    }
  }
  iVar5 = (*pcVar25)();
  if (iVar5 == 0) {
    cVar14 = (char)iVar22 + 'l';
    iVar6 = -1;
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);
  }
  else {
    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);
    unaff_s3 = auStack_114;
    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);
    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);
    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);
    piStack_134 = &iStack_124;
    uStack_13c = local_90 & 0xff;
    mx_resp_len = 0;
    cVar14 = (char)iVar22 + 'l';
    piStack_138 = piVar12;
    puStack_140 = unaff_s3;
    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);
    if (iVar6 == -1) {
      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);
      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = iStack_124;
      if (iStack_124 - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else {
      iVar6 = 0;
    }
    (**(code **)(puStack_130 + -0x7ea4))(iVar5);
  }
  if (iStack_d4 == *piVar20) {
    return iVar6;
  }
  pcVar25 = *(code **)(puStack_130 + -0x7df4);
  pcVar26 = sg_ll_write_buffer_v2;
  iVar9 = iStack_d4;
  (*pcVar25)();
  piVar21 = piStack_134;
  piVar24 = piStack_138;
  uVar4 = uStack_13c;
  pcStack_1d8 = pcVar25 + 0x32d3c;
  piVar23 = *(int **)(pcVar25 + 0x2af78);
  iStack_17c = *piVar23;
  puStack_160 = puVar18;
  piStack_170 = piVar12;
  uStack_1c8 = 0x3b000000;
  uStack_1c4 = 0;
  sStack_1c0 = 0;
  iStack_178 = iVar5;
  iStack_174 = iVar6;
  puStack_16c = unaff_s3;
  piStack_168 = piVar20;
  iStack_164 = iVar22;
  iStack_15c = iVar15;
  puStack_158 = puVar16;
  pcStack_154 = pcVar26;
  if (puStack_140 < (uint8_t *)0x1000000) {
    uVar7 = 0;
    uVar8 = 0;
    if (piStack_138 < (int *)0x1000000) {
      sStack_1c0 = (ushort)(byte)piStack_138 << 8;
      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));
      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);
      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);
      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),
                            (char)((uint)piStack_138 >> 8));
      if (uStack_12c != 0) {
        puVar16 = auStack_1be;
        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);
        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);
        puVar18 = (uint8_t *)&uStack_1c8;
        do {
          puVar19 = puVar18 + 1;
          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);
          uVar8 = (undefined1)uVar7;
          puVar18 = puVar19;
        } while (puVar19 != puVar16);
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);
        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {
          if ((int *)0x100 < piVar24) {
            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;
          }
          else {
            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;
          }
          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);
          uVar8 = 0xff;
          piVar12 = (int *)0x100;
          if ((int *)0x100 >= piVar24) {
            piVar12 = piVar24;
          }
          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);
        }
      }
      if ((int)piVar21 < 1) {
        piVar21 = (int *)0x3c;
      }
      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();
      if (iVar5 == 0) {
        iVar15 = -1;
        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);
      }
      else {
        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);
        unaff_s3 = auStack_1bc;
        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);
        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);
        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);
        mx_resp_len = 0;
        piStack_1dc = &iStack_1cc;
        uStack_1e0 = uStack_12c;
        uStack_1e4 = (uint)puStack_130 & 0xff;
        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;
        puStack_1e8 = unaff_s3;
        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);
        if (iVar15 == -1) {
          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);
          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);
        }
        else if (iVar15 == -2) {
          iVar15 = iStack_1cc;
          if (iStack_1cc - 0x14U < 2) {
            iVar15 = 0;
          }
        }
        else {
          iVar15 = 0;
        }
        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);
      }
    }
    else {
      iVar15 = -1;
      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);
    }
  }
  else {
    iVar15 = -1;
    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);
  }
  if (iStack_17c == *piVar23) {
    return iVar15;
  }
  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);
  pcVar26 = sg_ll_unmap_v2;
  iVar22 = iStack_17c;
  (*pcVar25)();
  piVar12 = piStack_1dc;
  uVar11 = uStack_1e4;
  puVar18 = puStack_1e8;
  piVar20 = *(int **)(pcVar25 + 0x2ac2c);
  uStack_208 = uVar4;
  uStack_218 = uStack_12c;
  aiStack_274[1] = 0x42000000;
  iStack_224 = *piVar20;
  if (iVar6 != 0) {
    aiStack_274[1] = 0x42010000;
  }
  if (mx_resp_len < 1) {
    mx_resp_len = 0x3c;
  }
  iVar6 = *(int *)(pcVar25 + 0x2aa20);
  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);
  sStack_268 = (ushort)(byte)uStack_1e4 << 8;
  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);
  iStack_220 = iVar5;
  iStack_21c = iVar15;
  puStack_214 = unaff_s3;
  piStack_210 = piVar21;
  piStack_20c = piVar23;
  iStack_204 = iVar9;
  puStack_200 = puVar16;
  pcStack_1fc = pcVar26;
  iStack_1f8 = iVar22;
  if (piStack_1dc != (int *)0x0) {
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);
    iVar15 = *(int *)(pcVar25 + 0x2aa1c);
    piVar24 = aiStack_274 + 1;
    do {
      piVar21 = (int *)((int)piVar24 + 1);
      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);
      piVar24 = piVar21;
    } while (&uStack_266 != piVar21);
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);
    if (1 < (int)piVar12) {
      pcVar26 = *(code **)(pcVar25 + 0x2ac34);
      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;
      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);
      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);
    }
  }
  pcVar26 = *(code **)(pcVar25 + 0x2ac34);
LAB_00029ecc:
  iVar15 = (*pcVar26)();
  if (iVar15 == 0) {
    iVar5 = -1;
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);
  }
  else {
    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);
    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);
    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);
    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);
    iVar5 = (**(code **)(pcVar25 + 0x2aab0))
                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12
                       ,aiStack_274);
    if (iVar5 == -1) {
      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);
      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);
    }
    else if (iVar5 == -2) {
      iVar5 = aiStack_274[0];
      if (aiStack_274[0] - 0x14U < 2) {
        iVar5 = 0;
      }
    }
    else {
      iVar5 = 0;
    }
    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);
  }
  if (iStack_224 != *piVar20) {
    pcVar25 = *(code **)(pcVar25 + 0x2abfc);
    (*pcVar25)();
    iVar15 = (**(code **)(pcVar25 + 0x2a938))();
    return iVar15;
  }
  return iVar5;
}



int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,
                     undefined4 param_5,int param_6,byte param_7,uint param_8)

{
  uint3 uVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  undefined1 uVar8;
  undefined4 uVar7;
  int iVar9;
  byte bVar14;
  undefined *puVar10;
  char cVar15;
  uint uVar11;
  int iVar12;
  int *piVar13;
  undefined4 *puVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  undefined *unaff_s3;
  int *piVar19;
  int *piVar20;
  int iVar21;
  int *piVar22;
  undefined *puVar23;
  undefined4 *unaff_s8;
  int *piVar24;
  code *pcVar25;
  code *pcVar26;
  int aiStack_274 [3];
  short sStack_268;
  undefined4 uStack_266;
  int iStack_224;
  int iStack_220;
  int iStack_21c;
  uint uStack_218;
  undefined *puStack_214;
  int *piStack_210;
  int *piStack_20c;
  uint uStack_208;
  int iStack_204;
  undefined4 *puStack_200;
  code *pcStack_1fc;
  int iStack_1f8;
  undefined *puStack_1e8;
  uint uStack_1e4;
  uint uStack_1e0;
  int *piStack_1dc;
  code *pcStack_1d8;
  int iStack_1cc;
  undefined4 uStack_1c8;
  undefined4 uStack_1c4;
  short sStack_1c0;
  undefined4 uStack_1be;
  int iStack_17c;
  int iStack_178;
  int iStack_174;
  int *piStack_170;
  undefined *puStack_16c;
  int *piStack_168;
  int iStack_164;
  undefined *puStack_160;
  int iStack_15c;
  undefined4 *puStack_158;
  code *pcStack_154;
  undefined *puStack_140;
  uint uStack_13c;
  int *piStack_138;
  int *piStack_134;
  undefined *puStack_130;
  uint uStack_12c;
  int iStack_124;
  undefined4 uStack_120;
  undefined2 uStack_11c;
  undefined1 uStack_11a;
  undefined1 uStack_119;
  undefined1 uStack_118;
  undefined1 uStack_117;
  undefined4 uStack_116;
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  uint uStack_c8;
  undefined *puStack_c4;
  undefined *puStack_c0;
  undefined *puStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  undefined4 *puStack_b0;
  code *pcStack_ac;
  undefined *local_98;
  uint local_94;
  uint local_90;
  int *local_8c;
  int local_7c;
  undefined4 local_78;
  undefined2 local_74;
  undefined1 local_72;
  undefined1 local_71;
  undefined1 local_70;
  undefined1 local_6f;
  undefined4 uStack_6e;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_00054a4c;
  puVar2 = PTR_s_tatus_00054840;
  local_78._1_1_ = param_2 & 0x1f;
  local_78._0_1_ = 0x3c;
  local_6f = 0;
  local_78._2_1_ = (undefined1)param_3;
  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);
  local_74 = (undefined2)param_4;
  local_72 = (undefined1)((uint)param_6 >> 0x10);
  local_71 = (undefined1)((uint)param_6 >> 8);
  local_70 = (undefined1)param_6;
  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;
  cVar15 = (char)PTR_s_tatus_00054840;
  if (param_8 == 0) {
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 == 0) goto LAB_0002970c;
LAB_0002951c:
    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);
    unaff_s3 = (undefined *)((int)&uStack_6e + 2);
    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);
    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);
    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);
    local_8c = &local_7c;
    local_94 = (uint)param_7;
    bVar14 = cVar15 + 0x5c;
    local_90 = param_8;
    local_98 = unaff_s3;
    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);
    if (iVar6 == -1) {
      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);
      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = local_7c;
      if (local_7c - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else if (((int)param_8 < 3) || (iVar6 < 1)) {
      iVar6 = 0;
    }
    else {
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);
      if (param_8 == 3) {
        param_8 = (uint)(iVar6 < 0x101);
        if (param_8 == 0) {
          puVar10 = PTR_s_tatus_00054840 + -0x1710;
        }
        else {
          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;
        }
        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);
        param_3 = 0xffffffff;
        iVar12 = 0;
        if (param_8 != 0) {
          iVar12 = iVar6;
        }
        bVar14 = (byte)iVar12;
        (*(code *)PTR_hex2stderr_0005489c)(param_5);
        iVar6 = 0;
      }
      else {
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);
        param_3 = 0;
        (*(code *)PTR_hex2stderr_0005489c)(param_5);
        bVar14 = (byte)iVar6;
        iVar6 = 0;
      }
    }
    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);
  }
  else {
    unaff_s8 = &uStack_6e;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);
    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;
    puVar16 = &local_78;
    do {
      puVar17 = (undefined4 *)((int)puVar16 + 1);
      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);
      puVar16 = puVar17;
    } while (unaff_s8 != puVar17);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 != 0) goto LAB_0002951c;
LAB_0002970c:
    bVar14 = cVar15 + 0x5c;
    iVar6 = -1;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);
    param_6 = param_4;
  }
  if (local_2c == *(int *)puVar3) {
    return iVar6;
  }
  pcVar25 = sg_ll_write_buffer;
  iVar12 = local_2c;
  puVar23 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  piVar13 = local_8c;
  uVar4 = local_94;
  puVar10 = local_98;
  puStack_130 = puVar23 + 0x33060;
  uStack_120._1_1_ = bVar14 & 0x1f;
  puStack_c0 = puVar3;
  piVar19 = *(int **)(puVar23 + 0x2b29c);
  uStack_b8 = param_5;
  puStack_bc = puVar2;
  uStack_120._0_1_ = 0x3b;
  uStack_117 = 0;
  uStack_120._2_1_ = (undefined1)param_3;
  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);
  uStack_11c = (undefined2)param_6;
  uStack_11a = (undefined1)(local_94 >> 0x10);
  uStack_119 = (undefined1)(local_94 >> 8);
  uStack_118 = (undefined1)local_94;
  iStack_d4 = *piVar19;
  iVar21 = *(int *)(puVar23 + 0x2b090);
  puVar16 = unaff_s8;
  iStack_d0 = iVar5;
  iStack_cc = iVar6;
  uStack_c8 = param_8;
  puStack_c4 = unaff_s3;
  uStack_b4 = param_1;
  puStack_b0 = unaff_s8;
  pcStack_ac = pcVar25;
  uVar8 = uStack_120._2_1_;
  if (local_8c == (int *)0x0) {
LAB_0002984c:
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
  }
  else {
    puVar16 = &uStack_116;
    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);
    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);
    puVar17 = &uStack_120;
    do {
      puVar18 = (undefined4 *)((int)puVar17 + 1);
      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);
      uVar8 = (undefined1)param_3;
      puVar17 = puVar18;
    } while (puVar16 != puVar18);
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
    if ((int)piVar13 < 2) goto LAB_0002984c;
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {
      (**(code **)(puStack_130 + -0x7f24))
                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);
      if (piVar13 == (int *)0x2) {
        if (0x100 < (int)uVar4) {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;
        }
        else {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;
        }
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);
        uVar8 = 0xff;
        uVar11 = 0x100;
        if (0x100 >= (int)uVar4) {
          uVar11 = uVar4;
        }
        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);
      }
      else {
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);
        uVar8 = 0;
        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);
      }
      goto LAB_0002984c;
    }
  }
  iVar5 = (*pcVar25)();
  if (iVar5 == 0) {
    cVar15 = (char)iVar21 + 'l';
    iVar6 = -1;
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);
  }
  else {
    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);
    unaff_s3 = (undefined *)((int)&uStack_116 + 2);
    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);
    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);
    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);
    piStack_134 = &iStack_124;
    uStack_13c = local_90 & 0xff;
    param_6 = 0;
    cVar15 = (char)iVar21 + 'l';
    piStack_138 = piVar13;
    puStack_140 = unaff_s3;
    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);
    if (iVar6 == -1) {
      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);
      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = iStack_124;
      if (iStack_124 - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else {
      iVar6 = 0;
    }
    (**(code **)(puStack_130 + -0x7ea4))(iVar5);
  }
  if (iStack_d4 == *piVar19) {
    return iVar6;
  }
  pcVar25 = *(code **)(puStack_130 + -0x7df4);
  pcVar26 = sg_ll_write_buffer_v2;
  iVar9 = iStack_d4;
  (*pcVar25)();
  piVar20 = piStack_134;
  piVar24 = piStack_138;
  uVar4 = uStack_13c;
  pcStack_1d8 = pcVar25 + 0x32d3c;
  piVar22 = *(int **)(pcVar25 + 0x2af78);
  iStack_17c = *piVar22;
  puStack_160 = puVar10;
  piStack_170 = piVar13;
  uStack_1c8 = 0x3b000000;
  uStack_1c4 = 0;
  sStack_1c0 = 0;
  iStack_178 = iVar5;
  iStack_174 = iVar6;
  puStack_16c = unaff_s3;
  piStack_168 = piVar19;
  iStack_164 = iVar21;
  iStack_15c = iVar12;
  puStack_158 = puVar16;
  pcStack_154 = pcVar26;
  if (puStack_140 < (undefined *)0x1000000) {
    uVar7 = 0;
    uVar8 = 0;
    if (piStack_138 < (int *)0x1000000) {
      sStack_1c0 = (ushort)(byte)piStack_138 << 8;
      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));
      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);
      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);
      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),
                            (char)((uint)piStack_138 >> 8));
      if (uStack_12c != 0) {
        puVar16 = &uStack_1be;
        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);
        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);
        puVar17 = &uStack_1c8;
        do {
          puVar18 = (undefined4 *)((int)puVar17 + 1);
          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);
          uVar8 = (undefined1)uVar7;
          puVar17 = puVar18;
        } while (puVar18 != puVar16);
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);
        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {
          if ((int *)0x100 < piVar24) {
            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;
          }
          else {
            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;
          }
          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);
          uVar8 = 0xff;
          piVar13 = (int *)0x100;
          if ((int *)0x100 >= piVar24) {
            piVar13 = piVar24;
          }
          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);
        }
      }
      if ((int)piVar20 < 1) {
        piVar20 = (int *)0x3c;
      }
      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();
      if (iVar5 == 0) {
        iVar6 = -1;
        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);
      }
      else {
        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);
        unaff_s3 = (undefined *)((int)&uStack_1be + 2);
        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);
        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);
        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);
        param_6 = 0;
        piStack_1dc = &iStack_1cc;
        uStack_1e0 = uStack_12c;
        uStack_1e4 = (uint)puStack_130 & 0xff;
        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;
        puStack_1e8 = unaff_s3;
        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);
        if (iVar6 == -1) {
          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);
          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);
        }
        else if (iVar6 == -2) {
          iVar6 = iStack_1cc;
          if (iStack_1cc - 0x14U < 2) {
            iVar6 = 0;
          }
        }
        else {
          iVar6 = 0;
        }
        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);
      }
    }
    else {
      iVar6 = -1;
      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);
    }
  }
  else {
    iVar6 = -1;
    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);
  }
  if (iStack_17c == *piVar22) {
    return iVar6;
  }
  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);
  pcVar26 = sg_ll_unmap_v2;
  iVar21 = iStack_17c;
  (*pcVar25)();
  piVar13 = piStack_1dc;
  uVar11 = uStack_1e4;
  puVar2 = puStack_1e8;
  piVar19 = *(int **)(pcVar25 + 0x2ac2c);
  uStack_208 = uVar4;
  uStack_218 = uStack_12c;
  aiStack_274[1] = 0x42000000;
  iStack_224 = *piVar19;
  if (iVar12 != 0) {
    aiStack_274[1] = 0x42010000;
  }
  if (param_6 < 1) {
    param_6 = 0x3c;
  }
  iVar12 = *(int *)(pcVar25 + 0x2aa20);
  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);
  sStack_268 = (ushort)(byte)uStack_1e4 << 8;
  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);
  iStack_220 = iVar5;
  iStack_21c = iVar6;
  puStack_214 = unaff_s3;
  piStack_210 = piVar20;
  piStack_20c = piVar22;
  iStack_204 = iVar9;
  puStack_200 = puVar16;
  pcStack_1fc = pcVar26;
  iStack_1f8 = iVar21;
  if (piStack_1dc != (int *)0x0) {
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);
    iVar5 = *(int *)(pcVar25 + 0x2aa1c);
    piVar24 = aiStack_274 + 1;
    do {
      piVar20 = (int *)((int)piVar24 + 1);
      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);
      piVar24 = piVar20;
    } while (&uStack_266 != piVar20);
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);
    if (1 < (int)piVar13) {
      pcVar26 = *(code **)(pcVar25 + 0x2ac34);
      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;
      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);
      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);
    }
  }
  pcVar26 = *(code **)(pcVar25 + 0x2ac34);
LAB_00029ecc:
  iVar5 = (*pcVar26)();
  if (iVar5 == 0) {
    iVar6 = -1;
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);
  }
  else {
    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);
    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);
    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);
    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);
    iVar6 = (**(code **)(pcVar25 + 0x2aab0))
                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13
                       ,aiStack_274);
    if (iVar6 == -1) {
      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);
      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = aiStack_274[0];
      if (aiStack_274[0] - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else {
      iVar6 = 0;
    }
    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);
  }
  if (iStack_224 != *piVar19) {
    pcVar25 = *(code **)(pcVar25 + 0x2abfc);
    (*pcVar25)();
    iVar5 = (**(code **)(pcVar25 + 0x2a938))();
    return iVar5;
  }
  return iVar6;
}


lui gp,0x3
addiu gp,gp,0x33a4
addu gp,gp,t9
addiu sp,sp,-0xa8
srl t0,a3,0x10
andi a1,a1,0x1f
sw s4,0x90(sp)
sw s1,0x84(sp)
sw s2,0x88(sp)
lw s4,-0x7dc4(gp)
lw s1,0xbc(sp)
lw s2,0xc4(sp)
sw s7,0x9c(sp)
or s7,a0,zero
sw gp,0x20(sp)
srl v1,s1,0x10
sw s6,0x98(sp)
srl v0,s1,0x8
sw s5,0x94(sp)
li a0,0x3c
sw ra,0xa4(sp)
sw s8,0xa0(sp)
sw s3,0x8c(sp)
sw s0,0x80(sp)
sb a0,0x30(sp)
sb zero,0x39(sp)
sb a1,0x31(sp)
sb a2,0x32(sp)
sb t0,0x33(sp)
sh a3,0x34(sp)
sb v1,0x36(sp)
sb v0,0x37(sp)
sb s1,0x38(sp)
lw t1,0x0(s4)
lw s6,0xb8(sp)
lw s5,-0x7fd0(gp)
sw t1,0x7c(sp)
bne s2,zero,0x0002969c
_lw t9,-0x7dbc(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x0002970c
_or s0,v0,zero
lw t9,-0x7fb0(gp)
li a2,0xa
addiu a1,sp,0x30
jalr t9
_or a0,v0,zero
addiu s3,sp,0x3c
lw gp,0x20(sp)
li a2,0x40
or a1,s3,zero
lw t9,-0x7f1c(gp)
jalr t9
_or a0,s0,zero
or a2,s1,zero
lw gp,0x20(sp)
or a1,s6,zero
lw t9,-0x7d90(gp)
jalr t9
_or a0,s0,zero
li a2,0x3c
lw gp,0x20(sp)
or a3,s2,zero
or a1,s7,zero
lw t9,-0x7e8c(gp)
jalr t9
_or a0,s0,zero
addiu v1,sp,0x2c
lw gp,0x20(sp)
or a2,v0,zero
lbu v0,0xc3(sp)
addiu a1,s5,-0x11a4
sw v1,0x1c(sp)
or a3,s1,zero
sw s2,0x18(sp)
or a0,s0,zero
sw v0,0x14(sp)
lw t9,-0x7f40(gp)
jalr t9
_sw s3,0x10(sp)
li v1,-0x1
lw gp,0x20(sp)
beq v0,v1,0x00029740
_or s1,v0,zero
li v0,-0x2
beq s1,v0,0x0002972c
_slti v0,s2,0x3
beq v0,zero,0x0002962c
_nop
or s1,zero,zero
lw t9,-0x7ea4(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
lw a0,0x7c(sp)
or v0,s1,zero
lw v1,0x0(s4)
bne a0,v1,0x000297a4
_lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa8
blez s1,0x000295d8
_lw a0,-0x7fd0(gp)
addiu a1,s5,-0x11a4
lw t9,-0x7f24(gp)
jalr t9
_addiu a0,a0,-0x16d4
li v0,0x3
bne s2,v0,0x00029768
_lw gp,0x20(sp)
slti s2,s1,0x101
beq s2,zero,0x0002979c
_lw a1,-0x7fd0(gp)
lw a1,-0x7fd0(gp)
addiu a1,a1,-0x1a5c
lw a0,-0x7fd4(gp)
lw t9,-0x7f24(gp)
jalr t9
_addiu a0,a0,0x23c4
li a1,0x100
lw gp,0x20(sp)
li a2,-0x1
movn a1,s1,s2
or a0,s6,zero
lw t9,-0x7f74(gp)
jalr t9
_or s1,zero,zero
b 0x000295dc
_lw gp,0x20(sp)
lw a0,-0x7fd0(gp)
addiu a1,s5,-0x11a4
lw t9,-0x7f24(gp)
addiu s0,sp,0x30
addiu s8,sp,0x3a
jalr t9
_addiu a0,a0,-0x1a50
lw gp,0x20(sp)
lw s3,-0x7fd4(gp)
addiu s3,s3,0x1f1c
lw t9,-0x7f24(gp)
addiu s0,s0,0x1
lbu a1,-0x1(s0)
jalr t9
_or a0,s3,zero
bne s8,s0,0x000296c4
_lw gp,0x20(sp)
lw a0,-0x7fd0(gp)
lw t9,-0x7f24(gp)
jalr t9
_addiu a0,a0,-0x990
lw gp,0x20(sp)
lw t9,-0x7dbc(gp)
jalr t9
_nop
lw gp,0x20(sp)
bne v0,zero,0x0002951c
_or s0,v0,zero
lw a0,-0x7fd0(gp)
addiu a1,s5,-0x11a4
lw t9,-0x7f24(gp)
li s1,-0x1
jalr t9
_addiu a0,a0,-0x1974
b 0x000295ec
_lw gp,0x20(sp)
lw s1,0x2c(sp)
addiu v0,s1,-0x14
sltiu v0,v0,0x2
b 0x000295dc
_movn s1,zero,v0
lw t9,-0x7d74(gp)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
lw t9,-0x7ee8(gp)
jalr t9
_or a0,v0,zero
lw gp,0x20(sp)
b 0x000295dc
_or s1,v0,zero
lw a0,-0x7fd0(gp)
lw t9,-0x7f24(gp)
jalr t9
_addiu a0,a0,-0x570
or a2,zero,zero
lw gp,0x20(sp)
or a1,s1,zero
or a0,s6,zero
lw t9,-0x7f74(gp)
jalr t9
_or s1,zero,zero
b 0x000295dc
_lw gp,0x20(sp)
b 0x00029664
_addiu a1,a1,-0x1710
lw t9,-0x7df4(gp)
jalr t9
_nop
(translation_unit "int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}\n\n" (function_definition "int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" primitive_type (function_declarator "sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "byte param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "byte param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" { (declaration "uint3 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int aiStack_274 [3];" primitive_type (array_declarator "aiStack_274 [3]" identifier [ number_literal ]) ;) (declaration "short sStack_268;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uStack_266;" type_identifier identifier ;) (declaration "int iStack_224;" primitive_type identifier ;) (declaration "int iStack_220;" primitive_type identifier ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint uStack_218;" type_identifier identifier ;) (declaration "undefined *puStack_214;" type_identifier (pointer_declarator "*puStack_214" * identifier) ;) (declaration "int *piStack_210;" primitive_type (pointer_declarator "*piStack_210" * identifier) ;) (declaration "int *piStack_20c;" primitive_type (pointer_declarator "*piStack_20c" * identifier) ;) (declaration "uint uStack_208;" type_identifier identifier ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "undefined4 *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "int iStack_1f8;" primitive_type identifier ;) (declaration "undefined *puStack_1e8;" type_identifier (pointer_declarator "*puStack_1e8" * identifier) ;) (declaration "uint uStack_1e4;" type_identifier identifier ;) (declaration "uint uStack_1e0;" type_identifier identifier ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "code *pcStack_1d8;" type_identifier (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "undefined4 uStack_1c4;" type_identifier identifier ;) (declaration "short sStack_1c0;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uStack_1be;" type_identifier identifier ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "undefined *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "undefined *puStack_160;" type_identifier (pointer_declarator "*puStack_160" * identifier) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "undefined4 *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "undefined *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "int *piStack_138;" primitive_type (pointer_declarator "*piStack_138" * identifier) ;) (declaration "int *piStack_134;" primitive_type (pointer_declarator "*piStack_134" * identifier) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "undefined4 uStack_120;" type_identifier identifier ;) (declaration "undefined2 uStack_11c;" type_identifier identifier ;) (declaration "undefined1 uStack_11a;" type_identifier identifier ;) (declaration "undefined1 uStack_119;" type_identifier identifier ;) (declaration "undefined1 uStack_118;" type_identifier identifier ;) (declaration "undefined1 uStack_117;" type_identifier identifier ;) (declaration "undefined4 uStack_116;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "undefined *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "undefined *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "undefined4 *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined2 local_74;" type_identifier identifier ;) (declaration "undefined1 local_72;" type_identifier identifier ;) (declaration "undefined1 local_71;" type_identifier identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined1 local_6f;" type_identifier identifier ;) (declaration "undefined4 uStack_6e;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_tatus_00054840;" (assignment_expression "puVar2 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "local_78._1_1_ = param_2 & 0x1f;" (assignment_expression "local_78._1_1_ = param_2 & 0x1f" (field_expression "local_78._1_1_" identifier . field_identifier) = (binary_expression "param_2 & 0x1f" identifier & number_literal)) ;) (expression_statement "local_78._0_1_ = 0x3c;" (assignment_expression "local_78._0_1_ = 0x3c" (field_expression "local_78._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_6f = 0;" (assignment_expression "local_6f = 0" identifier = number_literal) ;) (expression_statement "local_78._2_1_ = (undefined1)param_3;" (assignment_expression "local_78._2_1_ = (undefined1)param_3" (field_expression "local_78._2_1_" identifier . field_identifier) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10)" (field_expression "local_78._3_1_" identifier . field_identifier) = (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x10)" ( (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (undefined2)param_4;" (assignment_expression "local_74 = (undefined2)param_4" identifier = (cast_expression "(undefined2)param_4" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "local_72 = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "local_72 = (undefined1)((uint)param_6 >> 0x10)" identifier = (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 0x10)" ( (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_71 = (undefined1)((uint)param_6 >> 8);" (assignment_expression "local_71 = (undefined1)((uint)param_6 >> 8)" identifier = (call_expression "(undefined1)((uint)param_6 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 8)" ( (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_70 = (undefined1)param_6;" (assignment_expression "local_70 = (undefined1)param_6" identifier = (cast_expression "(undefined1)param_6" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar15 = (char)PTR_s_tatus_00054840;" (assignment_expression "cVar15 = (char)PTR_s_tatus_00054840" identifier = (cast_expression "(char)PTR_s_tatus_00054840" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }" { (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0002970c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002970c;" goto statement_identifier ;)) (labeled_statement "LAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" statement_identifier : (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,&local_78,10)" ( identifier , (pointer_expression "&local_78" & identifier) , number_literal ))) ;)) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_6e + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_6e + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_6e + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_6e + 2)" ( (binary_expression "(int)&uStack_6e + 2" (cast_expression "(int)&uStack_6e" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_6e" & identifier)) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_5,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);" (assignment_expression "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_1,0x3c,param_8)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "local_8c = &local_7c;" (assignment_expression "local_8c = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "local_94 = (uint)param_7;" (assignment_expression "local_94 = (uint)param_7" identifier = (cast_expression "(uint)param_7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" identifier = (binary_expression "cVar15 + 0x5c" identifier + number_literal)) ;) (expression_statement "local_90 = param_8;" (assignment_expression "local_90 = param_8" identifier = identifier) ;) (expression_statement "local_98 = unaff_s3;" (assignment_expression "local_98 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);" (assignment_expression "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }" { (expression_statement "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);" (assignment_expression "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);" (assignment_expression "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar7)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = local_7c;" (assignment_expression "iVar6 = local_7c" identifier = identifier) ;) (if_statement "if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(local_7c - 0x14U < 2)" ( (binary_expression "local_7c - 0x14U < 2" (binary_expression "local_7c - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(((int)param_8 < 3) || (iVar6 < 1))" ( (binary_expression "((int)param_8 < 3) || (iVar6 < 1)" (parenthesized_expression "((int)param_8 < 3)" ( (binary_expression "(int)param_8 < 3" (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x16d4" identifier + number_literal) , (binary_expression "puVar2 + -0x11a4" identifier + number_literal) ))) ;) (if_statement "if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(param_8 == 3)" ( (binary_expression "param_8 == 3" identifier == number_literal) )) (compound_statement "{\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }" { (expression_statement "param_8 = (uint)(iVar6 < 0x101);" (assignment_expression "param_8 = (uint)(iVar6 < 0x101)" identifier = (call_expression "(uint)(iVar6 < 0x101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 < 0x101)" ( (binary_expression "iVar6 < 0x101" identifier < number_literal) )))) ;) (if_statement "if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1710;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1710" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1710" identifier + number_literal)) ;) }) (else_clause "else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" else (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1a5c;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1a5c" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1a5c" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005483c + 0x23c4,puVar10)" ( (binary_expression "PTR_LAB_0005483c + 0x23c4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_3 = 0xffffffff;" (assignment_expression "param_3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_8 != 0) {\n          iVar12 = iVar6;\n        }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = iVar6;\n        }" { (expression_statement "iVar12 = iVar6;" (assignment_expression "iVar12 = iVar6" identifier = identifier) ;) })) (expression_statement "bVar14 = (byte)iVar12;" (assignment_expression "bVar14 = (byte)iVar12" identifier = (cast_expression "(byte)iVar12" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x570)" ( (binary_expression "PTR_s_tatus_00054840 + -0x570" identifier + number_literal) ))) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "bVar14 = (byte)iVar6;" (assignment_expression "bVar14 = (byte)iVar6" identifier = (cast_expression "(byte)iVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005496c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005496c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) }) (else_clause "else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" else (compound_statement "{\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" { (expression_statement "unaff_s8 = &uStack_6e;" (assignment_expression "unaff_s8 = &uStack_6e" identifier = (pointer_expression "&uStack_6e" & identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x11a4" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "unaff_s3 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar16 = &local_78;" (assignment_expression "puVar16 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (do_statement "do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);" do (compound_statement "{\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    }" { (expression_statement "puVar17 = (undefined4 *)((int)puVar16 + 1);" (assignment_expression "puVar17 = (undefined4 *)((int)puVar16 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar16 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 1)" ( (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,*(undefined1 *)puVar16)" ( identifier , (pointer_expression "*(undefined1 *)puVar16" * (cast_expression "(undefined1 *)puVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s8 != puVar17)" ( (binary_expression "unaff_s8 != puVar17" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0002951c;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002951c;" goto statement_identifier ;)) (labeled_statement "LAB_0002970c:\n    bVar14 = cVar15 + 0x5c;" statement_identifier : (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" identifier = (binary_expression "cVar15 + 0x5c" identifier + number_literal)) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1974)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1974" identifier + number_literal) ))) ;) (expression_statement "param_6 = param_4;" (assignment_expression "param_6 = param_4" identifier = identifier) ;) }))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = sg_ll_write_buffer;" (assignment_expression "pcVar25 = sg_ll_write_buffer" identifier = identifier) ;) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = local_8c;" (assignment_expression "piVar13 = local_8c" identifier = identifier) ;) (expression_statement "uVar4 = local_94;" (assignment_expression "uVar4 = local_94" identifier = identifier) ;) (expression_statement "puVar10 = local_98;" (assignment_expression "puVar10 = local_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar23 + 0x33060;" (assignment_expression "puStack_130 = puVar23 + 0x33060" identifier = (binary_expression "puVar23 + 0x33060" identifier + number_literal)) ;) (expression_statement "uStack_120._1_1_ = bVar14 & 0x1f;" (assignment_expression "uStack_120._1_1_ = bVar14 & 0x1f" (field_expression "uStack_120._1_1_" identifier . field_identifier) = (binary_expression "bVar14 & 0x1f" identifier & number_literal)) ;) (expression_statement "puStack_c0 = puVar3;" (assignment_expression "puStack_c0 = puVar3" identifier = identifier) ;) (expression_statement "piVar19 = *(int **)(puVar23 + 0x2b29c);" (assignment_expression "piVar19 = *(int **)(puVar23 + 0x2b29c)" identifier = (pointer_expression "*(int **)(puVar23 + 0x2b29c)" * (cast_expression "(int **)(puVar23 + 0x2b29c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x2b29c)" ( (binary_expression "puVar23 + 0x2b29c" identifier + number_literal) ))))) ;) (expression_statement "uStack_b8 = param_5;" (assignment_expression "uStack_b8 = param_5" identifier = identifier) ;) (expression_statement "puStack_bc = puVar2;" (assignment_expression "puStack_bc = puVar2" identifier = identifier) ;) (expression_statement "uStack_120._0_1_ = 0x3b;" (assignment_expression "uStack_120._0_1_ = 0x3b" (field_expression "uStack_120._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_117 = 0;" (assignment_expression "uStack_117 = 0" identifier = number_literal) ;) (expression_statement "uStack_120._2_1_ = (undefined1)param_3;" (assignment_expression "uStack_120._2_1_ = (undefined1)param_3" (field_expression "uStack_120._2_1_" identifier . field_identifier) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10)" (field_expression "uStack_120._3_1_" identifier . field_identifier) = (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 0x10)" ( (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_11c = (undefined2)param_6;" (assignment_expression "uStack_11c = (undefined2)param_6" identifier = (cast_expression "(undefined2)param_6" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uStack_11a = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_11a = (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 "uStack_119 = (undefined1)(local_94 >> 8);" (assignment_expression "uStack_119 = (undefined1)(local_94 >> 8)" identifier = (call_expression "(undefined1)(local_94 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_94 >> 8)" ( (binary_expression "local_94 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uStack_118 = (undefined1)local_94;" (assignment_expression "uStack_118 = (undefined1)local_94" identifier = (cast_expression "(undefined1)local_94" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iStack_d4 = *piVar19;" (assignment_expression "iStack_d4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "iVar21 = *(int *)(puVar23 + 0x2b090);" (assignment_expression "iVar21 = *(int *)(puVar23 + 0x2b090)" identifier = (pointer_expression "*(int *)(puVar23 + 0x2b090)" * (cast_expression "(int *)(puVar23 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x2b090)" ( (binary_expression "puVar23 + 0x2b090" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = unaff_s8;" (assignment_expression "puVar16 = unaff_s8" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" identifier = identifier) ;) (expression_statement "iStack_cc = iVar6;" (assignment_expression "iStack_cc = iVar6" identifier = identifier) ;) (expression_statement "uStack_c8 = param_8;" (assignment_expression "uStack_c8 = param_8" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "uStack_b4 = param_1;" (assignment_expression "uStack_b4 = param_1" identifier = identifier) ;) (expression_statement "puStack_b0 = unaff_s8;" (assignment_expression "puStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar25;" (assignment_expression "pcStack_ac = pcVar25" identifier = identifier) ;) (expression_statement "uVar8 = uStack_120._2_1_;" (assignment_expression "uVar8 = uStack_120._2_1_" identifier = (field_expression "uStack_120._2_1_" identifier . field_identifier)) ;) (if_statement "if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" if (parenthesized_expression "(local_8c == (int *)0x0)" ( (binary_expression "local_8c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }" { (labeled_statement "LAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);" statement_identifier : (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" else (compound_statement "{\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" { (expression_statement "puVar16 = &uStack_116;" (assignment_expression "puVar16 = &uStack_116" identifier = (pointer_expression "&uStack_116" & identifier)) ;) (expression_statement "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);" (call_expression "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puVar23 + 0x2b13c))" ( (pointer_expression "**(code **)(puVar23 + 0x2b13c)" * (pointer_expression "*(code **)(puVar23 + 0x2b13c)" * (cast_expression "(code **)(puVar23 + 0x2b13c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x2b13c)" ( (binary_expression "puVar23 + 0x2b13c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" ( (binary_expression "*(int *)(puVar23 + 0x2b090) + -0x1a50" (pointer_expression "*(int *)(puVar23 + 0x2b090)" * (cast_expression "(int *)(puVar23 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x2b090)" ( (binary_expression "puVar23 + 0x2b090" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x1194" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar17 = &uStack_120;" (assignment_expression "puVar17 = &uStack_120" identifier = (pointer_expression "&uStack_120" & identifier)) ;) (do_statement "do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);" do (compound_statement "{\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    }" { (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = (undefined1)param_3;" (assignment_expression "uVar8 = (undefined1)param_3" identifier = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) }) while (parenthesized_expression "(puVar16 != puVar18)" ( (binary_expression "puVar16 != puVar18" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((int)piVar13 < 2) goto LAB_0002984c;" if (parenthesized_expression "((int)piVar13 < 2)" ( (binary_expression "(int)piVar13 < 2" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;) (if_statement "if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" if (parenthesized_expression "((puVar10 != (undefined *)0x0) && (uVar4 != 0))" ( (binary_expression "(puVar10 != (undefined *)0x0) && (uVar4 != 0)" (parenthesized_expression "(puVar10 != (undefined *)0x0)" ( (binary_expression "puVar10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);" (call_expression "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1184" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x1194" identifier + number_literal) ))) ;) (if_statement "if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" if (parenthesized_expression "(piVar13 == (int *)0x2)" ( (binary_expression "piVar13 == (int *)0x2" identifier == (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }" { (if_statement "if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" if (parenthesized_expression "(0x100 < (int)uVar4)" ( (binary_expression "0x100 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1710" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" else (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x23c4" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0x100;" (assignment_expression "uVar11 = 0x100" identifier = number_literal) ;) (if_statement "if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }" if (parenthesized_expression "(0x100 >= (int)uVar4)" ( (binary_expression "0x100 >= (int)uVar4" number_literal >= (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar11 = uVar4;\n        }" { (expression_statement "uVar11 = uVar4;" (assignment_expression "uVar11 = uVar4" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar10,uVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" else (compound_statement "{\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x570)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x570" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar10,uVar4)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = (*pcVar25)();" (assignment_expression "iVar5 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }" { (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" identifier = (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" else (compound_statement "{\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" { (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_120,10)" ( identifier , (pointer_expression "&uStack_120" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_116 + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_116 + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_116 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_116 + 2)" ( (binary_expression "(int)&uStack_116 + 2" (cast_expression "(int)&uStack_116" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_116" & identifier)) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d9c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d9c)" * (pointer_expression "*(code **)(puStack_130 + -0x7d9c)" * (cast_expression "(code **)(puStack_130 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d9c)" ( (binary_expression "puStack_130 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,puVar10,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);" (assignment_expression "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar12,0x3c,piVar13)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "piStack_134 = &iStack_124;" (assignment_expression "piStack_134 = &iStack_124" identifier = (pointer_expression "&iStack_124" & identifier)) ;) (expression_statement "uStack_13c = local_90 & 0xff;" (assignment_expression "uStack_13c = local_90 & 0xff" identifier = (binary_expression "local_90 & 0xff" identifier & number_literal)) ;) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" identifier = number_literal) ;) (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" identifier = (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "piStack_138 = piVar13;" (assignment_expression "piStack_138 = piVar13" identifier = identifier) ;) (expression_statement "puStack_140 = unaff_s3;" (assignment_expression "puStack_140 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = iStack_124;" (assignment_expression "iVar6 = iStack_124" identifier = identifier) ;) (if_statement "if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(iStack_124 - 0x14U < 2)" ( (binary_expression "iStack_124 - 0x14U < 2" (binary_expression "iStack_124 - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar6 = 0;\n    }" else (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(puStack_130 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (if_statement "if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar19)" ( (binary_expression "iStack_d4 == *piVar19" identifier == (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_write_buffer_v2;" (assignment_expression "pcVar26 = sg_ll_write_buffer_v2" identifier = identifier) ;) (expression_statement "iVar9 = iStack_d4;" (assignment_expression "iVar9 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar20 = piStack_134;" (assignment_expression "piVar20 = piStack_134" identifier = identifier) ;) (expression_statement "piVar24 = piStack_138;" (assignment_expression "piVar24 = piStack_138" identifier = identifier) ;) (expression_statement "uVar4 = uStack_13c;" (assignment_expression "uVar4 = uStack_13c" identifier = identifier) ;) (expression_statement "pcStack_1d8 = pcVar25 + 0x32d3c;" (assignment_expression "pcStack_1d8 = pcVar25 + 0x32d3c" identifier = (binary_expression "pcVar25 + 0x32d3c" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar25 + 0x2af78);" (assignment_expression "piVar22 = *(int **)(pcVar25 + 0x2af78)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2af78)" * (cast_expression "(int **)(pcVar25 + 0x2af78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2af78)" ( (binary_expression "pcVar25 + 0x2af78" identifier + number_literal) ))))) ;) (expression_statement "iStack_17c = *piVar22;" (assignment_expression "iStack_17c = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puStack_160 = puVar10;" (assignment_expression "puStack_160 = puVar10" identifier = identifier) ;) (expression_statement "piStack_170 = piVar13;" (assignment_expression "piStack_170 = piVar13" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0x3b000000;" (assignment_expression "uStack_1c8 = 0x3b000000" identifier = number_literal) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "sStack_1c0 = 0;" (assignment_expression "sStack_1c0 = 0" identifier = number_literal) ;) (expression_statement "iStack_178 = iVar5;" (assignment_expression "iStack_178 = iVar5" identifier = identifier) ;) (expression_statement "iStack_174 = iVar6;" (assignment_expression "iStack_174 = iVar6" identifier = identifier) ;) (expression_statement "puStack_16c = unaff_s3;" (assignment_expression "puStack_16c = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_168 = piVar19;" (assignment_expression "piStack_168 = piVar19" identifier = identifier) ;) (expression_statement "iStack_164 = iVar21;" (assignment_expression "iStack_164 = iVar21" identifier = identifier) ;) (expression_statement "iStack_15c = iVar12;" (assignment_expression "iStack_15c = iVar12" identifier = identifier) ;) (expression_statement "puStack_158 = puVar16;" (assignment_expression "puStack_158 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_154 = pcVar26;" (assignment_expression "pcStack_154 = pcVar26" identifier = identifier) ;) (if_statement "if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" if (parenthesized_expression "(puStack_140 < (undefined *)0x1000000)" ( (binary_expression "puStack_140 < (undefined *)0x1000000" identifier < (cast_expression "(undefined *)0x1000000" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" if (parenthesized_expression "(piStack_138 < (int *)0x1000000)" ( (binary_expression "piStack_138 < (int *)0x1000000" identifier < (cast_expression "(int *)0x1000000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }" { (expression_statement "sStack_1c0 = (ushort)(byte)piStack_138 << 8;" (assignment_expression "sStack_1c0 = (ushort)(byte)piStack_138 << 8" identifier = (binary_expression "(ushort)(byte)piStack_138 << 8" (cast_expression "(ushort)(byte)piStack_138" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)piStack_138" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));" (assignment_expression "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" identifier = (call_expression "CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" identifier (argument_list "(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" ( (call_expression "CONCAT21(0x3b00,(char)param_6)" identifier (argument_list "(0x3b00,(char)param_6)" ( number_literal , (cast_expression "(char)param_6" ( (type_descriptor "char" primitive_type) ) identifier) ))) , (cast_expression "(char)((uint)puStack_140 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puStack_140 >> 0x10)" ( (binary_expression "(uint)puStack_140 >> 0x10" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);" (assignment_expression "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_)" identifier = (call_expression "CONCAT12(cVar15,uStack_1c8._2_2_)" identifier (argument_list "(cVar15,uStack_1c8._2_2_)" ( identifier , (field_expression "uStack_1c8._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);" (assignment_expression "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier = (call_expression "CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier (argument_list "(0x3b,uVar1 & 0x1fffff)" ( number_literal , (binary_expression "uVar1 & 0x1fffff" identifier & number_literal) )))) ;) (expression_statement "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));" (assignment_expression "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier = (call_expression "CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier (argument_list "(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" ( (call_expression "CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" identifier (argument_list "((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" ( (cast_expression "(short)puStack_140" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(char)((uint)piStack_138 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 0x10)" ( (binary_expression "(uint)piStack_138 >> 0x10" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) ))) , (cast_expression "(char)((uint)piStack_138 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 8)" ( (binary_expression "(uint)piStack_138 >> 8" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" { (expression_statement "puVar16 = &uStack_1be;" (assignment_expression "puVar16 = &uStack_1be" identifier = (pointer_expression "&uStack_1be" & identifier)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x10fc" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar17 = &uStack_1c8;" (assignment_expression "puVar17 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);" do (compound_statement "{\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        }" { (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = (undefined1)uVar7;" (assignment_expression "uVar8 = (undefined1)uVar7" identifier = (cast_expression "(undefined1)uVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) }) while (parenthesized_expression "(puVar18 != puVar16)" ( (binary_expression "puVar18 != puVar16" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" if (parenthesized_expression "(((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0))" ( (binary_expression "((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)" (parenthesized_expression "((1 < (int)uStack_12c) && (uVar4 != 0))" ( (binary_expression "(1 < (int)uStack_12c) && (uVar4 != 0)" (parenthesized_expression "(1 < (int)uStack_12c)" ( (binary_expression "1 < (int)uStack_12c" number_literal < (cast_expression "(int)uStack_12c" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" { (if_statement "if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" if (parenthesized_expression "((int *)0x100 < piVar24)" ( (binary_expression "(int *)0x100 < piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }" { (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" else (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" { (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)0x100;" (assignment_expression "piVar13 = (int *)0x100" identifier = (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }" if (parenthesized_expression "((int *)0x100 >= piVar24)" ( (binary_expression "(int *)0x100 >= piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n            piVar13 = piVar24;\n          }" { (expression_statement "piVar13 = piVar24;" (assignment_expression "piVar13 = piVar24" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f74)" ( (binary_expression "pcStack_1d8 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(uVar4,piVar13)" ( identifier , identifier ))) ;) })) })) (if_statement "if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }" if (parenthesized_expression "((int)piVar20 < 1)" ( (binary_expression "(int)piVar20 < 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        piVar20 = (int *)0x3c;\n      }" { (expression_statement "piVar20 = (int *)0x3c;" (assignment_expression "piVar20 = (int *)0x3c" identifier = (cast_expression "(int *)0x3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();" (assignment_expression "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))()" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7dbc))()" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7dbc))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7dbc)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7dbc)" * (cast_expression "(code **)(pcStack_1d8 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7dbc)" ( (binary_expression "pcStack_1d8 + -0x7dbc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" else (compound_statement "{\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" { (expression_statement "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);" (call_expression "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1d8 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7fb0)" ( (binary_expression "pcStack_1d8 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_1c8,10)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_1be + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_1be + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_1be + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_1be + 2)" ( (binary_expression "(int)&uStack_1be + 2" (cast_expression "(int)&uStack_1be" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_1be" & identifier)) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f1c)" ( (binary_expression "pcStack_1d8 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);" (call_expression "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d9c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d9c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d9c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d9c)" ( (binary_expression "pcStack_1d8 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,uVar4,piVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);" (assignment_expression "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7e8c)" ( (binary_expression "pcStack_1d8 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar9,piVar20,uStack_12c)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" identifier = number_literal) ;) (expression_statement "piStack_1dc = &iStack_1cc;" (assignment_expression "piStack_1dc = &iStack_1cc" identifier = (pointer_expression "&iStack_1cc" & identifier)) ;) (expression_statement "uStack_1e0 = uStack_12c;" (assignment_expression "uStack_1e0 = uStack_12c" identifier = identifier) ;) (expression_statement "uStack_1e4 = (uint)puStack_130 & 0xff;" (assignment_expression "uStack_1e4 = (uint)puStack_130 & 0xff" identifier = (binary_expression "(uint)puStack_130 & 0xff" (cast_expression "(uint)puStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puStack_1e8 = unaff_s3;" (assignment_expression "puStack_1e8 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f40)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f40)" ( (binary_expression "pcStack_1d8 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }" { (expression_statement "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d74)" ( (binary_expression "pcStack_1d8 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ee8)" ( (binary_expression "pcStack_1d8 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" else (if_statement "if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }" { (expression_statement "iVar6 = iStack_1cc;" (assignment_expression "iVar6 = iStack_1cc" identifier = identifier) ;) (if_statement "if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }" if (parenthesized_expression "(iStack_1cc - 0x14U < 2)" ( (binary_expression "iStack_1cc - 0x14U < 2" (binary_expression "iStack_1cc - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            iVar6 = 0;\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar6 = 0;\n        }" else (compound_statement "{\n          iVar6 = 0;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ea4)" ( (binary_expression "pcStack_1d8 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) }) (else_clause "else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" else (compound_statement "{\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1128" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" else (compound_statement "{\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1158" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (if_statement "if (iStack_17c == *piVar22) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_17c == *piVar22)" ( (binary_expression "iStack_17c == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1d8 + -0x7df4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7df4)" ( (binary_expression "pcStack_1d8 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_unmap_v2;" (assignment_expression "pcVar26 = sg_ll_unmap_v2" identifier = identifier) ;) (expression_statement "iVar21 = iStack_17c;" (assignment_expression "iVar21 = iStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = piStack_1dc;" (assignment_expression "piVar13 = piStack_1dc" identifier = identifier) ;) (expression_statement "uVar11 = uStack_1e4;" (assignment_expression "uVar11 = uStack_1e4" identifier = identifier) ;) (expression_statement "puVar2 = puStack_1e8;" (assignment_expression "puVar2 = puStack_1e8" identifier = identifier) ;) (expression_statement "piVar19 = *(int **)(pcVar25 + 0x2ac2c);" (assignment_expression "piVar19 = *(int **)(pcVar25 + 0x2ac2c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2ac2c)" * (cast_expression "(int **)(pcVar25 + 0x2ac2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac2c)" ( (binary_expression "pcVar25 + 0x2ac2c" identifier + number_literal) ))))) ;) (expression_statement "uStack_208 = uVar4;" (assignment_expression "uStack_208 = uVar4" identifier = identifier) ;) (expression_statement "uStack_218 = uStack_12c;" (assignment_expression "uStack_218 = uStack_12c" identifier = identifier) ;) (expression_statement "aiStack_274[1] = 0x42000000;" (assignment_expression "aiStack_274[1] = 0x42000000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_224 = *piVar19;" (assignment_expression "iStack_224 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (if_statement "if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    aiStack_274[1] = 0x42010000;\n  }" { (expression_statement "aiStack_274[1] = 0x42010000;" (assignment_expression "aiStack_274[1] = 0x42010000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (param_6 < 1) {\n    param_6 = 0x3c;\n  }" if (parenthesized_expression "(param_6 < 1)" ( (binary_expression "param_6 < 1" identifier < number_literal) )) (compound_statement "{\n    param_6 = 0x3c;\n  }" { (expression_statement "param_6 = 0x3c;" (assignment_expression "param_6 = 0x3c" identifier = number_literal) ;) })) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2aa20);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2aa20)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) ))))) ;) (expression_statement "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);" (assignment_expression "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) = (call_expression "CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" identifier (argument_list "((short)uStack_1e4,aiStack_274[0]._2_2_)" ( (cast_expression "(short)uStack_1e4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "aiStack_274[0]._2_2_" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) . field_identifier) )))) ;) (expression_statement "sStack_268 = (ushort)(byte)uStack_1e4 << 8;" (assignment_expression "sStack_268 = (ushort)(byte)uStack_1e4 << 8" identifier = (binary_expression "(ushort)(byte)uStack_1e4 << 8" (cast_expression "(ushort)(byte)uStack_1e4" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_1e4" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);" (assignment_expression "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (subscript_expression "aiStack_274[2]" identifier [ number_literal ]) = (cast_expression "(int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (binary_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff" (call_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8))" identifier (argument_list "(uVar8,(char)(uStack_1e4 >> 8))" ( identifier , (cast_expression "(char)(uStack_1e4 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uStack_1e4 >> 8)" ( (binary_expression "uStack_1e4 >> 8" identifier >> number_literal) ))) ))) & number_literal) )))) ;) (expression_statement "iStack_220 = iVar5;" (assignment_expression "iStack_220 = iVar5" identifier = identifier) ;) (expression_statement "iStack_21c = iVar6;" (assignment_expression "iStack_21c = iVar6" identifier = identifier) ;) (expression_statement "puStack_214 = unaff_s3;" (assignment_expression "puStack_214 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_210 = piVar20;" (assignment_expression "piStack_210 = piVar20" identifier = identifier) ;) (expression_statement "piStack_20c = piVar22;" (assignment_expression "piStack_20c = piVar22" identifier = identifier) ;) (expression_statement "iStack_204 = iVar9;" (assignment_expression "iStack_204 = iVar9" identifier = identifier) ;) (expression_statement "puStack_200 = puVar16;" (assignment_expression "puStack_200 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar26;" (assignment_expression "pcStack_1fc = pcVar26" identifier = identifier) ;) (expression_statement "iStack_1f8 = iVar21;" (assignment_expression "iStack_1f8 = iVar21" identifier = identifier) ;) (if_statement "if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" if (parenthesized_expression "(piStack_1dc != (int *)0x0)" ( (binary_expression "piStack_1dc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1a50" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(pcVar25 + 0x2aa1c);" (assignment_expression "iVar5 = *(int *)(pcVar25 + 0x2aa1c)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa1c)" * (cast_expression "(int *)(pcVar25 + 0x2aa1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa1c)" ( (binary_expression "pcVar25 + 0x2aa1c" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = aiStack_274 + 1;" (assignment_expression "piVar24 = aiStack_274 + 1" identifier = (binary_expression "aiStack_274 + 1" identifier + number_literal)) ;) (do_statement "do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);" do (compound_statement "{\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    }" { (expression_statement "piVar20 = (int *)((int)piVar24 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar24 + 1)" identifier = (cast_expression "(int *)((int)piVar24 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 1)" ( (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" ( (binary_expression "iVar5 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)piVar24" * (cast_expression "(undefined1 *)piVar24" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "piVar24 = piVar20;" (assignment_expression "piVar24 = piVar20" identifier = identifier) ;) }) while (parenthesized_expression "(&uStack_266 != piVar20)" ( (binary_expression "&uStack_266 != piVar20" (pointer_expression "&uStack_266" & identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x990)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x990" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" if (parenthesized_expression "(1 < (int)piVar13)" ( (binary_expression "1 < (int)piVar13" number_literal < (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" { (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (if_statement "if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;" if (parenthesized_expression "((puVar2 == (undefined *)0x0) || (uVar11 == 0))" ( (binary_expression "(puVar2 == (undefined *)0x0) || (uVar11 == 0)" (parenthesized_expression "(puVar2 == (undefined *)0x0)" ( (binary_expression "puVar2 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029ecc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x13cc" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);" (call_expression "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa7c)" * (cast_expression "(code **)(pcVar25 + 0x2aa7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa7c)" ( (binary_expression "pcVar25 + 0x2aa7c" identifier + number_literal) ))))) )) (argument_list "(puVar2,uVar11,0xffffffff)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00029ecc:\n  iVar5 = (*pcVar26)();" statement_identifier : (expression_statement "iVar5 = (*pcVar26)();" (assignment_expression "iVar5 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1974" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" else (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);" (call_expression "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa40))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa40)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa40)" * (cast_expression "(code **)(pcVar25 + 0x2aa40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa40)" ( (binary_expression "pcVar25 + 0x2aa40" identifier + number_literal) ))))) )) (argument_list "(iVar5,aiStack_274 + 1,10)" ( identifier , (binary_expression "aiStack_274 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);" (call_expression "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aad4))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aad4)" * (pointer_expression "*(code **)(pcVar25 + 0x2aad4)" * (cast_expression "(code **)(pcVar25 + 0x2aad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aad4)" ( (binary_expression "pcVar25 + 0x2aad4" identifier + number_literal) ))))) )) (argument_list "(iVar5,(int)&uStack_266 + 2,0x40)" ( identifier , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);" (call_expression "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac54))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac54)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac54)" * (cast_expression "(code **)(pcVar25 + 0x2ac54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac54)" ( (binary_expression "pcVar25 + 0x2ac54" identifier + number_literal) ))))) )) (argument_list "(iVar5,puVar2,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab64))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab64)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab64)" * (cast_expression "(code **)(pcVar25 + 0x2ab64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab64)" ( (binary_expression "pcVar25 + 0x2ab64" identifier + number_literal) ))))) )) (argument_list "(iVar5,iStack_1f8,param_6,piVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aab0))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aab0)" * (pointer_expression "*(code **)(pcVar25 + 0x2aab0)" * (cast_expression "(code **)(pcVar25 + 0x2aab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aab0)" ( (binary_expression "pcVar25 + 0x2aab0" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" ( identifier , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) , identifier , number_literal , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , (binary_expression "uStack_1e0 & 0xff" identifier & number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ac7c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac7c)" * (cast_expression "(code **)(pcVar25 + 0x2ac7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac7c)" ( (binary_expression "pcVar25 + 0x2ac7c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab08))(uVar7)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab08))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab08)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab08)" * (cast_expression "(code **)(pcVar25 + 0x2ab08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab08)" ( (binary_expression "pcVar25 + 0x2ab08" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = aiStack_274[0];" (assignment_expression "iVar6 = aiStack_274[0]" identifier = (subscript_expression "aiStack_274[0]" identifier [ number_literal ])) ;) (if_statement "if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(aiStack_274[0] - 0x14U < 2)" ( (binary_expression "aiStack_274[0] - 0x14U < 2" (binary_expression "aiStack_274[0] - 0x14U" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar6 = 0;\n    }" else (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcVar25 + 0x2ab4c))(iVar5);" (call_expression "(**(code **)(pcVar25 + 0x2ab4c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab4c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab4c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab4c)" * (cast_expression "(code **)(pcVar25 + 0x2ab4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab4c)" ( (binary_expression "pcVar25 + 0x2ab4c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (if_statement "if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_224 != *piVar19)" ( (binary_expression "iStack_224 != *piVar19" identifier != (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar25 + 0x2abfc);" (assignment_expression "pcVar25 = *(code **)(pcVar25 + 0x2abfc)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2abfc)" * (cast_expression "(code **)(pcVar25 + 0x2abfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2abfc)" ( (binary_expression "pcVar25 + 0x2abfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = (**(code **)(pcVar25 + 0x2a938))();" (assignment_expression "iVar5 = (**(code **)(pcVar25 + 0x2a938))()" identifier = (call_expression "(**(code **)(pcVar25 + 0x2a938))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x2a938))" ( (pointer_expression "**(code **)(pcVar25 + 0x2a938)" * (pointer_expression "*(code **)(pcVar25 + 0x2a938)" * (cast_expression "(code **)(pcVar25 + 0x2a938)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2a938)" ( (binary_expression "pcVar25 + 0x2a938" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar5;" return identifier ;) })) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit "int sg_ll_read_buffer(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int mx_resp_len,\n                     _Bool noisy,int verbose)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar13;\n  undefined *puVar10;\n  char cVar14;\n  uint uVar11;\n  int *piVar12;\n  int iVar15;\n  uint8_t *puVar16;\n  uint8_t *puVar17;\n  uint8_t *puVar18;\n  uint8_t *puVar19;\n  uint8_t *unaff_s3;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  uint8_t *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  uint8_t *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  uint8_t *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  uint8_t *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  uint8_t auStack_1be [2];\n  uint8_t auStack_1bc [64];\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  uint8_t *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  uint8_t *puStack_160;\n  int iStack_15c;\n  uint8_t *puStack_158;\n  code *pcStack_154;\n  uint8_t *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  uint8_t uStack_120;\n  byte bStack_11f;\n  undefined1 uStack_11e;\n  undefined1 uStack_11d;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  uint8_t auStack_116 [2];\n  uint8_t auStack_114 [64];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  uint8_t *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  void *pvStack_b8;\n  int iStack_b4;\n  uint8_t *puStack_b0;\n  code *pcStack_ac;\n  uint8_t *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int sense_cat;\n  uint8_t rbuf_cdb [10];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  rbuf_cdb[1] = (byte)mode & 0x1f;\n  rbuf_cdb[0] = '<';\n  rbuf_cdb[9] = '\0';\n  rbuf_cdb[2] = (uint8_t)buffer_id;\n  rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10);\n  rbuf_cdb._4_2_ = (undefined2)buffer_offset;\n  rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10);\n  rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8);\n  rbuf_cdb[8] = (uint8_t)mx_resp_len;\n  iVar15 = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar14 = (char)PTR_s_tatus_00054840;\n  if (verbose == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);\n    unaff_s3 = sense_b;\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);\n    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);\n    local_8c = &sense_cat;\n    local_94 = (uint)noisy;\n    bVar13 = cVar14 + 0x5c;\n    local_90 = verbose;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }\n  if (iVar15 == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  puVar10 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar12 = local_8c;\n  uVar4 = local_94;\n  puVar18 = local_98;\n  puStack_130 = puVar10 + 0x33060;\n  bStack_11f = bVar13 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar20 = *(int **)(puVar10 + 0x2b29c);\n  pvStack_b8 = resp;\n  puStack_bc = puVar2;\n  uStack_120 = ';';\n  uStack_117 = 0;\n  uStack_11e = (undefined1)buffer_id;\n  uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10);\n  uStack_11c = (undefined2)mx_resp_len;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar20;\n  iVar22 = *(int *)(puVar10 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = verbose;\n  puStack_c4 = unaff_s3;\n  iStack_b4 = sg_fd;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_11e;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar14 = (char)iVar22 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar20) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar21 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar23 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar23;\n  puStack_160 = puVar18;\n  piStack_170 = piVar12;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar20;\n  iStack_164 = iVar22;\n  iStack_15c = iVar15;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (uint8_t *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar23) {\n    return iVar15;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar22 = iStack_17c;\n  (*pcVar25)();\n  piVar12 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar18 = puStack_1e8;\n  piVar20 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar20;\n  if (iVar6 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (mx_resp_len < 1) {\n    mx_resp_len = 0x3c;\n  }\n  iVar6 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar15;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar21;\n  piStack_20c = piVar23;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar22;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);\n    iVar15 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar15 = (*pcVar26)();\n  if (iVar15 == 0) {\n    iVar5 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }\n  if (iStack_224 != *piVar20) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar15 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar15;\n  }\n  return iVar5;\n}\n\n" (function_definition "int sg_ll_read_buffer(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int mx_resp_len,\n                     _Bool noisy,int verbose)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar13;\n  undefined *puVar10;\n  char cVar14;\n  uint uVar11;\n  int *piVar12;\n  int iVar15;\n  uint8_t *puVar16;\n  uint8_t *puVar17;\n  uint8_t *puVar18;\n  uint8_t *puVar19;\n  uint8_t *unaff_s3;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  uint8_t *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  uint8_t *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  uint8_t *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  uint8_t *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  uint8_t auStack_1be [2];\n  uint8_t auStack_1bc [64];\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  uint8_t *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  uint8_t *puStack_160;\n  int iStack_15c;\n  uint8_t *puStack_158;\n  code *pcStack_154;\n  uint8_t *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  uint8_t uStack_120;\n  byte bStack_11f;\n  undefined1 uStack_11e;\n  undefined1 uStack_11d;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  uint8_t auStack_116 [2];\n  uint8_t auStack_114 [64];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  uint8_t *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  void *pvStack_b8;\n  int iStack_b4;\n  uint8_t *puStack_b0;\n  code *pcStack_ac;\n  uint8_t *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int sense_cat;\n  uint8_t rbuf_cdb [10];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  rbuf_cdb[1] = (byte)mode & 0x1f;\n  rbuf_cdb[0] = '<';\n  rbuf_cdb[9] = '\0';\n  rbuf_cdb[2] = (uint8_t)buffer_id;\n  rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10);\n  rbuf_cdb._4_2_ = (undefined2)buffer_offset;\n  rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10);\n  rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8);\n  rbuf_cdb[8] = (uint8_t)mx_resp_len;\n  iVar15 = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar14 = (char)PTR_s_tatus_00054840;\n  if (verbose == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);\n    unaff_s3 = sense_b;\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);\n    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);\n    local_8c = &sense_cat;\n    local_94 = (uint)noisy;\n    bVar13 = cVar14 + 0x5c;\n    local_90 = verbose;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }\n  if (iVar15 == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  puVar10 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar12 = local_8c;\n  uVar4 = local_94;\n  puVar18 = local_98;\n  puStack_130 = puVar10 + 0x33060;\n  bStack_11f = bVar13 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar20 = *(int **)(puVar10 + 0x2b29c);\n  pvStack_b8 = resp;\n  puStack_bc = puVar2;\n  uStack_120 = ';';\n  uStack_117 = 0;\n  uStack_11e = (undefined1)buffer_id;\n  uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10);\n  uStack_11c = (undefined2)mx_resp_len;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar20;\n  iVar22 = *(int *)(puVar10 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = verbose;\n  puStack_c4 = unaff_s3;\n  iStack_b4 = sg_fd;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_11e;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar14 = (char)iVar22 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar20) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar21 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar23 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar23;\n  puStack_160 = puVar18;\n  piStack_170 = piVar12;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar20;\n  iStack_164 = iVar22;\n  iStack_15c = iVar15;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (uint8_t *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar23) {\n    return iVar15;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar22 = iStack_17c;\n  (*pcVar25)();\n  piVar12 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar18 = puStack_1e8;\n  piVar20 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar20;\n  if (iVar6 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (mx_resp_len < 1) {\n    mx_resp_len = 0x3c;\n  }\n  iVar6 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar15;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar21;\n  piStack_20c = piVar23;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar22;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);\n    iVar15 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar15 = (*pcVar26)();\n  if (iVar15 == 0) {\n    iVar5 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }\n  if (iStack_224 != *piVar20) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar15 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar15;\n  }\n  return iVar5;\n}" primitive_type (function_declarator "sg_ll_read_buffer(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int mx_resp_len,\n                     _Bool noisy,int verbose)" identifier (parameter_list "(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int mx_resp_len,\n                     _Bool noisy,int verbose)" ( (parameter_declaration "int sg_fd" primitive_type identifier) , (parameter_declaration "int mode" primitive_type identifier) , (parameter_declaration "int buffer_id" primitive_type identifier) , (parameter_declaration "int buffer_offset" primitive_type identifier) , (parameter_declaration "void *resp" primitive_type (pointer_declarator "*resp" * identifier)) , (parameter_declaration "int mx_resp_len" primitive_type identifier) , (parameter_declaration "_Bool noisy" type_identifier identifier) , (parameter_declaration "int verbose" primitive_type identifier) ))) (compound_statement "{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar13;\n  undefined *puVar10;\n  char cVar14;\n  uint uVar11;\n  int *piVar12;\n  int iVar15;\n  uint8_t *puVar16;\n  uint8_t *puVar17;\n  uint8_t *puVar18;\n  uint8_t *puVar19;\n  uint8_t *unaff_s3;\n  int *piVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  uint8_t *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  uint8_t *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  uint8_t *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  uint8_t *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  uint8_t auStack_1be [2];\n  uint8_t auStack_1bc [64];\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  uint8_t *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  uint8_t *puStack_160;\n  int iStack_15c;\n  uint8_t *puStack_158;\n  code *pcStack_154;\n  uint8_t *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  uint8_t uStack_120;\n  byte bStack_11f;\n  undefined1 uStack_11e;\n  undefined1 uStack_11d;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  uint8_t auStack_116 [2];\n  uint8_t auStack_114 [64];\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  uint8_t *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  void *pvStack_b8;\n  int iStack_b4;\n  uint8_t *puStack_b0;\n  code *pcStack_ac;\n  uint8_t *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int sense_cat;\n  uint8_t rbuf_cdb [10];\n  uint8_t auStack_6e [2];\n  uint8_t sense_b [64];\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  rbuf_cdb[1] = (byte)mode & 0x1f;\n  rbuf_cdb[0] = '<';\n  rbuf_cdb[9] = '\0';\n  rbuf_cdb[2] = (uint8_t)buffer_id;\n  rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10);\n  rbuf_cdb._4_2_ = (undefined2)buffer_offset;\n  rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10);\n  rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8);\n  rbuf_cdb[8] = (uint8_t)mx_resp_len;\n  iVar15 = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar14 = (char)PTR_s_tatus_00054840;\n  if (verbose == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);\n    unaff_s3 = sense_b;\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);\n    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);\n    local_8c = &sense_cat;\n    local_94 = (uint)noisy;\n    bVar13 = cVar14 + 0x5c;\n    local_90 = verbose;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }\n  if (iVar15 == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  puVar10 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar12 = local_8c;\n  uVar4 = local_94;\n  puVar18 = local_98;\n  puStack_130 = puVar10 + 0x33060;\n  bStack_11f = bVar13 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar20 = *(int **)(puVar10 + 0x2b29c);\n  pvStack_b8 = resp;\n  puStack_bc = puVar2;\n  uStack_120 = ';';\n  uStack_117 = 0;\n  uStack_11e = (undefined1)buffer_id;\n  uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10);\n  uStack_11c = (undefined2)mx_resp_len;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar20;\n  iVar22 = *(int *)(puVar10 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = verbose;\n  puStack_c4 = unaff_s3;\n  iStack_b4 = sg_fd;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_11e;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar14 = (char)iVar22 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar20) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar21 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar23 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar23;\n  puStack_160 = puVar18;\n  piStack_170 = piVar12;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar20;\n  iStack_164 = iVar22;\n  iStack_15c = iVar15;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (uint8_t *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar23) {\n    return iVar15;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar22 = iStack_17c;\n  (*pcVar25)();\n  piVar12 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar18 = puStack_1e8;\n  piVar20 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar20;\n  if (iVar6 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (mx_resp_len < 1) {\n    mx_resp_len = 0x3c;\n  }\n  iVar6 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar15;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar21;\n  piStack_20c = piVar23;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar22;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);\n    iVar15 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar15 = (*pcVar26)();\n  if (iVar15 == 0) {\n    iVar5 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }\n  if (iStack_224 != *piVar20) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar15 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar15;\n  }\n  return iVar5;\n}" { (declaration "uint3 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint8_t *puVar16;" primitive_type (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint8_t *puVar17;" primitive_type (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint8_t *puVar18;" primitive_type (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint8_t *puVar19;" primitive_type (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint8_t *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "uint8_t *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int aiStack_274 [3];" primitive_type (array_declarator "aiStack_274 [3]" identifier [ number_literal ]) ;) (declaration "short sStack_268;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uStack_266;" type_identifier identifier ;) (declaration "int iStack_224;" primitive_type identifier ;) (declaration "int iStack_220;" primitive_type identifier ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint uStack_218;" type_identifier identifier ;) (declaration "uint8_t *puStack_214;" primitive_type (pointer_declarator "*puStack_214" * identifier) ;) (declaration "int *piStack_210;" primitive_type (pointer_declarator "*piStack_210" * identifier) ;) (declaration "int *piStack_20c;" primitive_type (pointer_declarator "*piStack_20c" * identifier) ;) (declaration "uint uStack_208;" type_identifier identifier ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "uint8_t *puStack_200;" primitive_type (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "int iStack_1f8;" primitive_type identifier ;) (declaration "uint8_t *puStack_1e8;" primitive_type (pointer_declarator "*puStack_1e8" * identifier) ;) (declaration "uint uStack_1e4;" type_identifier identifier ;) (declaration "uint uStack_1e0;" type_identifier identifier ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "code *pcStack_1d8;" type_identifier (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "undefined4 uStack_1c4;" type_identifier identifier ;) (declaration "short sStack_1c0;" (sized_type_specifier "short" short) identifier ;) (declaration "uint8_t auStack_1be [2];" primitive_type (array_declarator "auStack_1be [2]" identifier [ number_literal ]) ;) (declaration "uint8_t auStack_1bc [64];" primitive_type (array_declarator "auStack_1bc [64]" identifier [ number_literal ]) ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "uint8_t *puStack_16c;" primitive_type (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "uint8_t *puStack_160;" primitive_type (pointer_declarator "*puStack_160" * identifier) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "uint8_t *puStack_158;" primitive_type (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "uint8_t *puStack_140;" primitive_type (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "int *piStack_138;" primitive_type (pointer_declarator "*piStack_138" * identifier) ;) (declaration "int *piStack_134;" primitive_type (pointer_declarator "*piStack_134" * identifier) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "uint8_t uStack_120;" primitive_type identifier ;) (declaration "byte bStack_11f;" type_identifier identifier ;) (declaration "undefined1 uStack_11e;" type_identifier identifier ;) (declaration "undefined1 uStack_11d;" type_identifier identifier ;) (declaration "undefined2 uStack_11c;" type_identifier identifier ;) (declaration "undefined1 uStack_11a;" type_identifier identifier ;) (declaration "undefined1 uStack_119;" type_identifier identifier ;) (declaration "undefined1 uStack_118;" type_identifier identifier ;) (declaration "undefined1 uStack_117;" type_identifier identifier ;) (declaration "uint8_t auStack_116 [2];" primitive_type (array_declarator "auStack_116 [2]" identifier [ number_literal ]) ;) (declaration "uint8_t auStack_114 [64];" primitive_type (array_declarator "auStack_114 [64]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "uint8_t *puStack_c4;" primitive_type (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "undefined *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "void *pvStack_b8;" primitive_type (pointer_declarator "*pvStack_b8" * identifier) ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "uint8_t *puStack_b0;" primitive_type (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "uint8_t *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "int sense_cat;" primitive_type identifier ;) (declaration "uint8_t rbuf_cdb [10];" primitive_type (array_declarator "rbuf_cdb [10]" identifier [ number_literal ]) ;) (declaration "uint8_t auStack_6e [2];" primitive_type (array_declarator "auStack_6e [2]" identifier [ number_literal ]) ;) (declaration "uint8_t sense_b [64];" primitive_type (array_declarator "sense_b [64]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_tatus_00054840;" (assignment_expression "puVar2 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "rbuf_cdb[1] = (byte)mode & 0x1f;" (assignment_expression "rbuf_cdb[1] = (byte)mode & 0x1f" (subscript_expression "rbuf_cdb[1]" identifier [ number_literal ]) = (binary_expression "(byte)mode & 0x1f" (cast_expression "(byte)mode" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "rbuf_cdb[0] = '<';" (assignment_expression "rbuf_cdb[0] = '<'" (subscript_expression "rbuf_cdb[0]" identifier [ number_literal ]) = (char_literal "'<'" ' character ')) ;) (expression_statement "rbuf_cdb[9] = '\0';" (assignment_expression "rbuf_cdb[9] = '\0'" (subscript_expression "rbuf_cdb[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "rbuf_cdb[2] = (uint8_t)buffer_id;" (assignment_expression "rbuf_cdb[2] = (uint8_t)buffer_id" (subscript_expression "rbuf_cdb[2]" identifier [ number_literal ]) = (cast_expression "(uint8_t)buffer_id" ( (type_descriptor "uint8_t" primitive_type) ) identifier)) ;) (expression_statement "rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10);" (assignment_expression "rbuf_cdb[3] = (uint8_t)((uint)buffer_offset >> 0x10)" (subscript_expression "rbuf_cdb[3]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((uint)buffer_offset >> 0x10)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((uint)buffer_offset >> 0x10)" ( (binary_expression "(uint)buffer_offset >> 0x10" (cast_expression "(uint)buffer_offset" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "rbuf_cdb._4_2_ = (undefined2)buffer_offset;" (assignment_expression "rbuf_cdb._4_2_ = (undefined2)buffer_offset" (field_expression "rbuf_cdb._4_2_" identifier . field_identifier) = (cast_expression "(undefined2)buffer_offset" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10);" (assignment_expression "rbuf_cdb[6] = (uint8_t)((uint)mx_resp_len >> 0x10)" (subscript_expression "rbuf_cdb[6]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((uint)mx_resp_len >> 0x10)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((uint)mx_resp_len >> 0x10)" ( (binary_expression "(uint)mx_resp_len >> 0x10" (cast_expression "(uint)mx_resp_len" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8);" (assignment_expression "rbuf_cdb[7] = (uint8_t)((uint)mx_resp_len >> 8)" (subscript_expression "rbuf_cdb[7]" identifier [ number_literal ]) = (cast_expression "(uint8_t)((uint)mx_resp_len >> 8)" ( (type_descriptor "uint8_t" primitive_type) ) (parenthesized_expression "((uint)mx_resp_len >> 8)" ( (binary_expression "(uint)mx_resp_len >> 8" (cast_expression "(uint)mx_resp_len" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "rbuf_cdb[8] = (uint8_t)mx_resp_len;" (assignment_expression "rbuf_cdb[8] = (uint8_t)mx_resp_len" (subscript_expression "rbuf_cdb[8]" identifier [ number_literal ]) = (cast_expression "(uint8_t)mx_resp_len" ( (type_descriptor "uint8_t" primitive_type) ) identifier)) ;) (expression_statement "iVar15 = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "iVar15 = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar14 = (char)PTR_s_tatus_00054840;" (assignment_expression "cVar14 = (char)PTR_s_tatus_00054840" identifier = (cast_expression "(char)PTR_s_tatus_00054840" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (verbose == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);\n    unaff_s3 = sense_b;\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);\n    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);\n    local_8c = &sense_cat;\n    local_94 = (uint)noisy;\n    bVar13 = cVar14 + 0x5c;\n    local_90 = verbose;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }" if (parenthesized_expression "(verbose == 0)" ( (binary_expression "verbose == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);\n    unaff_s3 = sense_b;\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);\n    buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);\n    local_8c = &sense_cat;\n    local_94 = (uint)noisy;\n    bVar13 = cVar14 + 0x5c;\n    local_90 = verbose;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }" { (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0002970c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002970c;" goto statement_identifier ;)) (labeled_statement "LAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);" statement_identifier : (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,rbuf_cdb,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,rbuf_cdb,10)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "unaff_s3 = sense_b;" (assignment_expression "unaff_s3 = sense_b" identifier = identifier) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,resp,mx_resp_len)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,resp,mx_resp_len)" ( identifier , identifier , identifier ))) ;) (expression_statement "buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose);" (assignment_expression "buffer_id = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(iVar5,sg_fd,0x3c,verbose)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,sg_fd,0x3c,verbose)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "local_8c = &sense_cat;" (assignment_expression "local_8c = &sense_cat" identifier = (pointer_expression "&sense_cat" & identifier)) ;) (expression_statement "local_94 = (uint)noisy;" (assignment_expression "local_94 = (uint)noisy" identifier = (cast_expression "(uint)noisy" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar13 = cVar14 + 0x5c;" (assignment_expression "bVar13 = cVar14 + 0x5c" identifier = (binary_expression "cVar14 + 0x5c" identifier + number_literal)) ;) (expression_statement "local_90 = verbose;" (assignment_expression "local_90 = verbose" identifier = identifier) ;) (expression_statement "local_98 = unaff_s3;" (assignment_expression "local_98 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);" (assignment_expression "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }" { (expression_statement "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);" (assignment_expression "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);" (assignment_expression "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar7)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = sense_cat;\n      if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = sense_cat;" (assignment_expression "iVar6 = sense_cat" identifier = identifier) ;) (if_statement "if (sense_cat - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(sense_cat - 0x14U < 2)" ( (binary_expression "sense_cat - 0x14U < 2" (binary_expression "sense_cat - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if ((verbose < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "((verbose < 3) || (iVar6 < 1))" ( (binary_expression "(verbose < 3) || (iVar6 < 1)" (parenthesized_expression "(verbose < 3)" ( (binary_expression "verbose < 3" identifier < number_literal) )) || (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x16d4" identifier + number_literal) , (binary_expression "puVar2 + -0x11a4" identifier + number_literal) ))) ;) (if_statement "if (verbose == 3) {\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(verbose == 3)" ( (binary_expression "verbose == 3" identifier == number_literal) )) (compound_statement "{\n        verbose = (int)(iVar6 < 0x101);\n        if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        buffer_id = -1;\n        iVar22 = 0;\n        if (verbose != 0) {\n          iVar22 = iVar6;\n        }\n        bVar13 = (byte)iVar22;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        iVar6 = 0;\n      }" { (expression_statement "verbose = (int)(iVar6 < 0x101);" (assignment_expression "verbose = (int)(iVar6 < 0x101)" identifier = (cast_expression "(int)(iVar6 < 0x101)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar6 < 0x101)" ( (binary_expression "iVar6 < 0x101" identifier < number_literal) )))) ;) (if_statement "if (verbose == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" if (parenthesized_expression "(verbose == 0)" ( (binary_expression "verbose == 0" identifier == number_literal) )) (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1710;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1710" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1710" identifier + number_literal)) ;) }) (else_clause "else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" else (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1a5c;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1a5c" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1a5c" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005483c + 0x23c4,puVar10)" ( (binary_expression "PTR_LAB_0005483c + 0x23c4" identifier + number_literal) , identifier ))) ;) (expression_statement "buffer_id = -1;" (assignment_expression "buffer_id = -1" identifier = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (if_statement "if (verbose != 0) {\n          iVar22 = iVar6;\n        }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n          iVar22 = iVar6;\n        }" { (expression_statement "iVar22 = iVar6;" (assignment_expression "iVar22 = iVar6" identifier = identifier) ;) })) (expression_statement "bVar13 = (byte)iVar22;" (assignment_expression "bVar13 = (byte)iVar22" identifier = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(resp);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(resp)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(resp)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        buffer_id = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(resp);\n        bVar13 = (byte)iVar6;\n        iVar6 = 0;\n      }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x570)" ( (binary_expression "PTR_s_tatus_00054840 + -0x570" identifier + number_literal) ))) ;) (expression_statement "buffer_id = 0;" (assignment_expression "buffer_id = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(resp);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(resp)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(resp)" ( identifier ))) ;) (expression_statement "bVar13 = (byte)iVar6;" (assignment_expression "bVar13 = (byte)iVar6" identifier = (cast_expression "(byte)iVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005496c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005496c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) }) (else_clause "else {\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }" else (compound_statement "{\n    unaff_s8 = auStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar18 = rbuf_cdb;\n    do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar13 = cVar14 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    mx_resp_len = buffer_offset;\n  }" { (expression_statement "unaff_s8 = auStack_6e;" (assignment_expression "unaff_s8 = auStack_6e" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x11a4" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "unaff_s3 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar18 = rbuf_cdb;" (assignment_expression "puVar18 = rbuf_cdb" identifier = identifier) ;) (do_statement "do {\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    } while (unaff_s8 != puVar16);" do (compound_statement "{\n      puVar16 = puVar18 + 1;\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);\n      puVar18 = puVar16;\n    }" { (expression_statement "puVar16 = puVar18 + 1;" (assignment_expression "puVar16 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*puVar18)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "puVar18 = puVar16;" (assignment_expression "puVar18 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s8 != puVar16)" ( (binary_expression "unaff_s8 != puVar16" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0002951c;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002951c;" goto statement_identifier ;)) (labeled_statement "LAB_0002970c:\n    bVar13 = cVar14 + 0x5c;" statement_identifier : (expression_statement "bVar13 = cVar14 + 0x5c;" (assignment_expression "bVar13 = cVar14 + 0x5c" identifier = (binary_expression "cVar14 + 0x5c" identifier + number_literal)) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1974)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1974" identifier + number_literal) ))) ;) (expression_statement "mx_resp_len = buffer_offset;" (assignment_expression "mx_resp_len = buffer_offset" identifier = identifier) ;) }))) (if_statement "if (iVar15 == *(int *)puVar3) {\n    return iVar6;\n  }" if (parenthesized_expression "(iVar15 == *(int *)puVar3)" ( (binary_expression "iVar15 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = sg_ll_write_buffer;" (assignment_expression "pcVar25 = sg_ll_write_buffer" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = local_8c;" (assignment_expression "piVar12 = local_8c" identifier = identifier) ;) (expression_statement "uVar4 = local_94;" (assignment_expression "uVar4 = local_94" identifier = identifier) ;) (expression_statement "puVar18 = local_98;" (assignment_expression "puVar18 = local_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar10 + 0x33060;" (assignment_expression "puStack_130 = puVar10 + 0x33060" identifier = (binary_expression "puVar10 + 0x33060" identifier + number_literal)) ;) (expression_statement "bStack_11f = bVar13 & 0x1f;" (assignment_expression "bStack_11f = bVar13 & 0x1f" identifier = (binary_expression "bVar13 & 0x1f" identifier & number_literal)) ;) (expression_statement "puStack_c0 = puVar3;" (assignment_expression "puStack_c0 = puVar3" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(puVar10 + 0x2b29c);" (assignment_expression "piVar20 = *(int **)(puVar10 + 0x2b29c)" identifier = (pointer_expression "*(int **)(puVar10 + 0x2b29c)" * (cast_expression "(int **)(puVar10 + 0x2b29c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2b29c)" ( (binary_expression "puVar10 + 0x2b29c" identifier + number_literal) ))))) ;) (expression_statement "pvStack_b8 = resp;" (assignment_expression "pvStack_b8 = resp" identifier = identifier) ;) (expression_statement "puStack_bc = puVar2;" (assignment_expression "puStack_bc = puVar2" identifier = identifier) ;) (expression_statement "uStack_120 = ';';" (assignment_expression "uStack_120 = ';'" identifier = (char_literal "';'" ' character ')) ;) (expression_statement "uStack_117 = 0;" (assignment_expression "uStack_117 = 0" identifier = number_literal) ;) (expression_statement "uStack_11e = (undefined1)buffer_id;" (assignment_expression "uStack_11e = (undefined1)buffer_id" identifier = (cast_expression "(undefined1)buffer_id" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10);" (assignment_expression "uStack_11d = (undefined1)((uint)mx_resp_len >> 0x10)" identifier = (call_expression "(undefined1)((uint)mx_resp_len >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)mx_resp_len >> 0x10)" ( (binary_expression "(uint)mx_resp_len >> 0x10" (cast_expression "(uint)mx_resp_len" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_11c = (undefined2)mx_resp_len;" (assignment_expression "uStack_11c = (undefined2)mx_resp_len" identifier = (cast_expression "(undefined2)mx_resp_len" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uStack_11a = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_11a = (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 "uStack_119 = (undefined1)(local_94 >> 8);" (assignment_expression "uStack_119 = (undefined1)(local_94 >> 8)" identifier = (call_expression "(undefined1)(local_94 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_94 >> 8)" ( (binary_expression "local_94 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uStack_118 = (undefined1)local_94;" (assignment_expression "uStack_118 = (undefined1)local_94" identifier = (cast_expression "(undefined1)local_94" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iStack_d4 = *piVar20;" (assignment_expression "iStack_d4 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "iVar22 = *(int *)(puVar10 + 0x2b090);" (assignment_expression "iVar22 = *(int *)(puVar10 + 0x2b090)" identifier = (pointer_expression "*(int *)(puVar10 + 0x2b090)" * (cast_expression "(int *)(puVar10 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2b090)" ( (binary_expression "puVar10 + 0x2b090" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = unaff_s8;" (assignment_expression "puVar16 = unaff_s8" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" identifier = identifier) ;) (expression_statement "iStack_cc = iVar6;" (assignment_expression "iStack_cc = iVar6" identifier = identifier) ;) (expression_statement "uStack_c8 = verbose;" (assignment_expression "uStack_c8 = verbose" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "iStack_b4 = sg_fd;" (assignment_expression "iStack_b4 = sg_fd" identifier = identifier) ;) (expression_statement "puStack_b0 = unaff_s8;" (assignment_expression "puStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar25;" (assignment_expression "pcStack_ac = pcVar25" identifier = identifier) ;) (expression_statement "uVar8 = uStack_11e;" (assignment_expression "uVar8 = uStack_11e" identifier = identifier) ;) (if_statement "if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" if (parenthesized_expression "(local_8c == (int *)0x0)" ( (binary_expression "local_8c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }" { (labeled_statement "LAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);" statement_identifier : (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" else (compound_statement "{\n    puVar16 = auStack_116;\n    (**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);\n    unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar19 = &uStack_120;\n    do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar12 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" { (expression_statement "puVar16 = auStack_116;" (assignment_expression "puVar16 = auStack_116" identifier = identifier) ;) (expression_statement "(**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194);" (call_expression "(**(code **)(puVar10 + 0x2b13c))(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194)" (parenthesized_expression "(**(code **)(puVar10 + 0x2b13c))" ( (pointer_expression "**(code **)(puVar10 + 0x2b13c)" * (pointer_expression "*(code **)(puVar10 + 0x2b13c)" * (cast_expression "(code **)(puVar10 + 0x2b13c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x2b13c)" ( (binary_expression "puVar10 + 0x2b13c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar10 + 0x2b090) + -0x1a50,iVar22 + -0x1194)" ( (binary_expression "*(int *)(puVar10 + 0x2b090) + -0x1a50" (pointer_expression "*(int *)(puVar10 + 0x2b090)" * (cast_expression "(int *)(puVar10 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2b090)" ( (binary_expression "puVar10 + 0x2b090" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x1194" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(uint8_t *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar19 = &uStack_120;" (assignment_expression "puVar19 = &uStack_120" identifier = (pointer_expression "&uStack_120" & identifier)) ;) (do_statement "do {\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    } while (puVar16 != puVar17);" do (compound_statement "{\n      puVar17 = puVar19 + 1;\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);\n      uVar8 = (undefined1)buffer_id;\n      puVar19 = puVar17;\n    }" { (expression_statement "puVar17 = puVar19 + 1;" (assignment_expression "puVar17 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*puVar19)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*puVar19)" ( identifier , (pointer_expression "*puVar19" * identifier) ))) ;) (expression_statement "uVar8 = (undefined1)buffer_id;" (assignment_expression "uVar8 = (undefined1)buffer_id" identifier = (cast_expression "(undefined1)buffer_id" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar19 = puVar17;" (assignment_expression "puVar19 = puVar17" identifier = identifier) ;) }) while (parenthesized_expression "(puVar16 != puVar17)" ( (binary_expression "puVar16 != puVar17" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((int)piVar12 < 2) goto LAB_0002984c;" if (parenthesized_expression "((int)piVar12 < 2)" ( (binary_expression "(int)piVar12 < 2" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;) (if_statement "if ((puVar18 != (uint8_t *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }" if (parenthesized_expression "((puVar18 != (uint8_t *)0x0) && (uVar4 != 0))" ( (binary_expression "(puVar18 != (uint8_t *)0x0) && (uVar4 != 0)" (parenthesized_expression "(puVar18 != (uint8_t *)0x0)" ( (binary_expression "puVar18 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);\n      if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }\n      goto LAB_0002984c;\n    }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194);" (call_expression "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar22 + -0x1194)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1184" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar22 + -0x1194" identifier + number_literal) ))) ;) (if_statement "if (piVar12 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }" if (parenthesized_expression "(piVar12 == (int *)0x2)" ( (binary_expression "piVar12 == (int *)0x2" identifier == (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);\n      }" { (if_statement "if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" if (parenthesized_expression "(0x100 < (int)uVar4)" ( (binary_expression "0x100 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1710" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" else (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x23c4" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0x100;" (assignment_expression "uVar11 = 0x100" identifier = number_literal) ;) (if_statement "if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }" if (parenthesized_expression "(0x100 >= (int)uVar4)" ( (binary_expression "0x100 >= (int)uVar4" number_literal >= (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar11 = uVar4;\n        }" { (expression_statement "uVar11 = uVar4;" (assignment_expression "uVar11 = uVar4" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar18,uVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar18,uVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }" else (compound_statement "{\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);\n      }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x570)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x570" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar18,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar18,uVar4)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = (*pcVar25)();" (assignment_expression "iVar5 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    cVar14 = (char)iVar22 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar14 = (char)iVar22 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }" { (expression_statement "cVar14 = (char)iVar22 + 'l';" (assignment_expression "cVar14 = (char)iVar22 + 'l'" identifier = (binary_expression "(char)iVar22 + 'l'" (cast_expression "(char)iVar22" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" else (compound_statement "{\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = auStack_114;\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    mx_resp_len = 0;\n    cVar14 = (char)iVar22 + 'l';\n    piStack_138 = piVar12;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" { (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_120,10)" ( identifier , (pointer_expression "&uStack_120" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = auStack_114;" (assignment_expression "unaff_s3 = auStack_114" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar18,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d9c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d9c)" * (pointer_expression "*(code **)(puStack_130 + -0x7d9c)" * (cast_expression "(code **)(puStack_130 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d9c)" ( (binary_expression "puStack_130 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,puVar18,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12);" (assignment_expression "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar15,0x3c,piVar12)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar15,0x3c,piVar12)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "piStack_134 = &iStack_124;" (assignment_expression "piStack_134 = &iStack_124" identifier = (pointer_expression "&iStack_124" & identifier)) ;) (expression_statement "uStack_13c = local_90 & 0xff;" (assignment_expression "uStack_13c = local_90 & 0xff" identifier = (binary_expression "local_90 & 0xff" identifier & number_literal)) ;) (expression_statement "mx_resp_len = 0;" (assignment_expression "mx_resp_len = 0" identifier = number_literal) ;) (expression_statement "cVar14 = (char)iVar22 + 'l';" (assignment_expression "cVar14 = (char)iVar22 + 'l'" identifier = (binary_expression "(char)iVar22 + 'l'" (cast_expression "(char)iVar22" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "piStack_138 = piVar12;" (assignment_expression "piStack_138 = piVar12" identifier = identifier) ;) (expression_statement "puStack_140 = unaff_s3;" (assignment_expression "puStack_140 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = iStack_124;" (assignment_expression "iVar6 = iStack_124" identifier = identifier) ;) (if_statement "if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(iStack_124 - 0x14U < 2)" ( (binary_expression "iStack_124 - 0x14U < 2" (binary_expression "iStack_124 - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar6 = 0;\n    }" else (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(puStack_130 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (if_statement "if (iStack_d4 == *piVar20) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar20)" ( (binary_expression "iStack_d4 == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_write_buffer_v2;" (assignment_expression "pcVar26 = sg_ll_write_buffer_v2" identifier = identifier) ;) (expression_statement "iVar9 = iStack_d4;" (assignment_expression "iVar9 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = piStack_134;" (assignment_expression "piVar21 = piStack_134" identifier = identifier) ;) (expression_statement "piVar24 = piStack_138;" (assignment_expression "piVar24 = piStack_138" identifier = identifier) ;) (expression_statement "uVar4 = uStack_13c;" (assignment_expression "uVar4 = uStack_13c" identifier = identifier) ;) (expression_statement "pcStack_1d8 = pcVar25 + 0x32d3c;" (assignment_expression "pcStack_1d8 = pcVar25 + 0x32d3c" identifier = (binary_expression "pcVar25 + 0x32d3c" identifier + number_literal)) ;) (expression_statement "piVar23 = *(int **)(pcVar25 + 0x2af78);" (assignment_expression "piVar23 = *(int **)(pcVar25 + 0x2af78)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2af78)" * (cast_expression "(int **)(pcVar25 + 0x2af78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2af78)" ( (binary_expression "pcVar25 + 0x2af78" identifier + number_literal) ))))) ;) (expression_statement "iStack_17c = *piVar23;" (assignment_expression "iStack_17c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "puStack_160 = puVar18;" (assignment_expression "puStack_160 = puVar18" identifier = identifier) ;) (expression_statement "piStack_170 = piVar12;" (assignment_expression "piStack_170 = piVar12" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0x3b000000;" (assignment_expression "uStack_1c8 = 0x3b000000" identifier = number_literal) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "sStack_1c0 = 0;" (assignment_expression "sStack_1c0 = 0" identifier = number_literal) ;) (expression_statement "iStack_178 = iVar5;" (assignment_expression "iStack_178 = iVar5" identifier = identifier) ;) (expression_statement "iStack_174 = iVar6;" (assignment_expression "iStack_174 = iVar6" identifier = identifier) ;) (expression_statement "puStack_16c = unaff_s3;" (assignment_expression "puStack_16c = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_168 = piVar20;" (assignment_expression "piStack_168 = piVar20" identifier = identifier) ;) (expression_statement "iStack_164 = iVar22;" (assignment_expression "iStack_164 = iVar22" identifier = identifier) ;) (expression_statement "iStack_15c = iVar15;" (assignment_expression "iStack_15c = iVar15" identifier = identifier) ;) (expression_statement "puStack_158 = puVar16;" (assignment_expression "puStack_158 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_154 = pcVar26;" (assignment_expression "pcStack_154 = pcVar26" identifier = identifier) ;) (if_statement "if (puStack_140 < (uint8_t *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" if (parenthesized_expression "(puStack_140 < (uint8_t *)0x1000000)" ( (binary_expression "puStack_140 < (uint8_t *)0x1000000" identifier < (cast_expression "(uint8_t *)0x1000000" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" if (parenthesized_expression "(piStack_138 < (int *)0x1000000)" ( (binary_expression "piStack_138 < (int *)0x1000000" identifier < (cast_expression "(int *)0x1000000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }\n      if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }" { (expression_statement "sStack_1c0 = (ushort)(byte)piStack_138 << 8;" (assignment_expression "sStack_1c0 = (ushort)(byte)piStack_138 << 8" identifier = (binary_expression "(ushort)(byte)piStack_138 << 8" (cast_expression "(ushort)(byte)piStack_138" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)piStack_138" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10));" (assignment_expression "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10))" identifier = (call_expression "CONCAT31(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10))" identifier (argument_list "(CONCAT21(0x3b00,(char)mx_resp_len),(char)((uint)puStack_140 >> 0x10))" ( (call_expression "CONCAT21(0x3b00,(char)mx_resp_len)" identifier (argument_list "(0x3b00,(char)mx_resp_len)" ( number_literal , (cast_expression "(char)mx_resp_len" ( (type_descriptor "char" primitive_type) ) identifier) ))) , (cast_expression "(char)((uint)puStack_140 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puStack_140 >> 0x10)" ( (binary_expression "(uint)puStack_140 >> 0x10" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_);" (assignment_expression "uVar1 = CONCAT12(cVar14,uStack_1c8._2_2_)" identifier = (call_expression "CONCAT12(cVar14,uStack_1c8._2_2_)" identifier (argument_list "(cVar14,uStack_1c8._2_2_)" ( identifier , (field_expression "uStack_1c8._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);" (assignment_expression "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier = (call_expression "CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier (argument_list "(0x3b,uVar1 & 0x1fffff)" ( number_literal , (binary_expression "uVar1 & 0x1fffff" identifier & number_literal) )))) ;) (expression_statement "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));" (assignment_expression "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier = (call_expression "CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier (argument_list "(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" ( (call_expression "CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" identifier (argument_list "((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" ( (cast_expression "(short)puStack_140" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(char)((uint)piStack_138 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 0x10)" ( (binary_expression "(uint)piStack_138 >> 0x10" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) ))) , (cast_expression "(char)((uint)piStack_138 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 8)" ( (binary_expression "(uint)piStack_138 >> 8" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uStack_12c != 0) {\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n        puVar16 = auStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar18 = (uint8_t *)&uStack_1c8;\n        do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }\n      }" { (expression_statement "puVar16 = auStack_1be;" (assignment_expression "puVar16 = auStack_1be" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x10fc" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(uint8_t *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar18 = (uint8_t *)&uStack_1c8;" (assignment_expression "puVar18 = (uint8_t *)&uStack_1c8" identifier = (cast_expression "(uint8_t *)&uStack_1c8" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_1c8" & identifier))) ;) (do_statement "do {\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        } while (puVar19 != puVar16);" do (compound_statement "{\n          puVar19 = puVar18 + 1;\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);\n          uVar8 = (undefined1)uVar7;\n          puVar18 = puVar19;\n        }" { (expression_statement "puVar19 = puVar18 + 1;" (assignment_expression "puVar19 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*puVar18)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*puVar18)" ( identifier , (pointer_expression "*puVar18" * identifier) ))) ;) (expression_statement "uVar8 = (undefined1)uVar7;" (assignment_expression "uVar8 = (undefined1)uVar7" identifier = (cast_expression "(undefined1)uVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(puVar19 != puVar16)" ( (binary_expression "puVar19 != puVar16" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }" if (parenthesized_expression "(((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0))" ( (binary_expression "((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)" (parenthesized_expression "((1 < (int)uStack_12c) && (uVar4 != 0))" ( (binary_expression "(1 < (int)uStack_12c) && (uVar4 != 0)" (parenthesized_expression "(1 < (int)uStack_12c)" ( (binary_expression "1 < (int)uStack_12c" number_literal < (cast_expression "(int)uStack_12c" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);\n          uVar8 = 0xff;\n          piVar12 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);\n        }" { (if_statement "if ((int *)0x100 < piVar24) {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" if (parenthesized_expression "((int *)0x100 < piVar24)" ( (binary_expression "(int *)0x100 < piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;" (assignment_expression "iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" else (compound_statement "{\n            iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar15 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar15)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "piVar12 = (int *)0x100;" (assignment_expression "piVar12 = (int *)0x100" identifier = (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int *)0x100 >= piVar24) {\n            piVar12 = piVar24;\n          }" if (parenthesized_expression "((int *)0x100 >= piVar24)" ( (binary_expression "(int *)0x100 >= piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n            piVar12 = piVar24;\n          }" { (expression_statement "piVar12 = piVar24;" (assignment_expression "piVar12 = piVar24" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar12)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f74)" ( (binary_expression "pcStack_1d8 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(uVar4,piVar12)" ( identifier , identifier ))) ;) })) })) (if_statement "if ((int)piVar21 < 1) {\n        piVar21 = (int *)0x3c;\n      }" if (parenthesized_expression "((int)piVar21 < 1)" ( (binary_expression "(int)piVar21 < 1" (cast_expression "(int)piVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        piVar21 = (int *)0x3c;\n      }" { (expression_statement "piVar21 = (int *)0x3c;" (assignment_expression "piVar21 = (int *)0x3c" identifier = (cast_expression "(int *)0x3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();" (assignment_expression "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))()" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7dbc))()" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7dbc))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7dbc)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7dbc)" * (cast_expression "(code **)(pcStack_1d8 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7dbc)" ( (binary_expression "pcStack_1d8 + -0x7dbc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = -1;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }" { (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;" (assignment_expression "iVar6 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" else (compound_statement "{\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = auStack_1bc;\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);\n        mx_resp_len = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" { (expression_statement "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);" (call_expression "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1d8 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7fb0)" ( (binary_expression "pcStack_1d8 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_1c8,10)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = auStack_1bc;" (assignment_expression "unaff_s3 = auStack_1bc" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f1c)" ( (binary_expression "pcStack_1d8 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);" (call_expression "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d9c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d9c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d9c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d9c)" ( (binary_expression "pcStack_1d8 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,uVar4,piVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c);" (assignment_expression "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar21,uStack_12c)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7e8c)" ( (binary_expression "pcStack_1d8 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar9,piVar21,uStack_12c)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "mx_resp_len = 0;" (assignment_expression "mx_resp_len = 0" identifier = number_literal) ;) (expression_statement "piStack_1dc = &iStack_1cc;" (assignment_expression "piStack_1dc = &iStack_1cc" identifier = (pointer_expression "&iStack_1cc" & identifier)) ;) (expression_statement "uStack_1e0 = uStack_12c;" (assignment_expression "uStack_1e0 = uStack_12c" identifier = identifier) ;) (expression_statement "uStack_1e4 = (uint)puStack_130 & 0xff;" (assignment_expression "uStack_1e4 = (uint)puStack_130 & 0xff" identifier = (binary_expression "(uint)puStack_130 & 0xff" (cast_expression "(uint)puStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;" (assignment_expression "iVar6 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puStack_1e8 = unaff_s3;" (assignment_expression "puStack_1e8 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);" (assignment_expression "iVar15 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f40)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f40)" ( (binary_expression "pcStack_1d8 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar15 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }" { (expression_statement "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d74)" ( (binary_expression "pcStack_1d8 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);" (assignment_expression "iVar15 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ee8)" ( (binary_expression "pcStack_1d8 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }" else (if_statement "if (iVar15 == -2) {\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }\n        else {\n          iVar15 = 0;\n        }" if (parenthesized_expression "(iVar15 == -2)" ( (binary_expression "iVar15 == -2" identifier == number_literal) )) (compound_statement "{\n          iVar15 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }\n        }" { (expression_statement "iVar15 = iStack_1cc;" (assignment_expression "iVar15 = iStack_1cc" identifier = identifier) ;) (if_statement "if (iStack_1cc - 0x14U < 2) {\n            iVar15 = 0;\n          }" if (parenthesized_expression "(iStack_1cc - 0x14U < 2)" ( (binary_expression "iStack_1cc - 0x14U < 2" (binary_expression "iStack_1cc - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            iVar15 = 0;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar15 = 0;\n        }" else (compound_statement "{\n          iVar15 = 0;\n        }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ea4)" ( (binary_expression "pcStack_1d8 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) }) (else_clause "else {\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" else (compound_statement "{\n      iVar15 = -1;\n      iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" { (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1128" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" else (compound_statement "{\n    iVar15 = -1;\n    iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" { (expression_statement "iVar15 = -1;" (assignment_expression "iVar15 = -1" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar6 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1158" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (if_statement "if (iStack_17c == *piVar23) {\n    return iVar15;\n  }" if (parenthesized_expression "(iStack_17c == *piVar23)" ( (binary_expression "iStack_17c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return iVar15;\n  }" { (return_statement "return iVar15;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1d8 + -0x7df4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7df4)" ( (binary_expression "pcStack_1d8 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_unmap_v2;" (assignment_expression "pcVar26 = sg_ll_unmap_v2" identifier = identifier) ;) (expression_statement "iVar22 = iStack_17c;" (assignment_expression "iVar22 = iStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = piStack_1dc;" (assignment_expression "piVar12 = piStack_1dc" identifier = identifier) ;) (expression_statement "uVar11 = uStack_1e4;" (assignment_expression "uVar11 = uStack_1e4" identifier = identifier) ;) (expression_statement "puVar18 = puStack_1e8;" (assignment_expression "puVar18 = puStack_1e8" identifier = identifier) ;) (expression_statement "piVar20 = *(int **)(pcVar25 + 0x2ac2c);" (assignment_expression "piVar20 = *(int **)(pcVar25 + 0x2ac2c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2ac2c)" * (cast_expression "(int **)(pcVar25 + 0x2ac2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac2c)" ( (binary_expression "pcVar25 + 0x2ac2c" identifier + number_literal) ))))) ;) (expression_statement "uStack_208 = uVar4;" (assignment_expression "uStack_208 = uVar4" identifier = identifier) ;) (expression_statement "uStack_218 = uStack_12c;" (assignment_expression "uStack_218 = uStack_12c" identifier = identifier) ;) (expression_statement "aiStack_274[1] = 0x42000000;" (assignment_expression "aiStack_274[1] = 0x42000000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_224 = *piVar20;" (assignment_expression "iStack_224 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (if_statement "if (iVar6 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    aiStack_274[1] = 0x42010000;\n  }" { (expression_statement "aiStack_274[1] = 0x42010000;" (assignment_expression "aiStack_274[1] = 0x42010000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (mx_resp_len < 1) {\n    mx_resp_len = 0x3c;\n  }" if (parenthesized_expression "(mx_resp_len < 1)" ( (binary_expression "mx_resp_len < 1" identifier < number_literal) )) (compound_statement "{\n    mx_resp_len = 0x3c;\n  }" { (expression_statement "mx_resp_len = 0x3c;" (assignment_expression "mx_resp_len = 0x3c" identifier = number_literal) ;) })) (expression_statement "iVar6 = *(int *)(pcVar25 + 0x2aa20);" (assignment_expression "iVar6 = *(int *)(pcVar25 + 0x2aa20)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) ))))) ;) (expression_statement "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);" (assignment_expression "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) = (call_expression "CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" identifier (argument_list "((short)uStack_1e4,aiStack_274[0]._2_2_)" ( (cast_expression "(short)uStack_1e4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "aiStack_274[0]._2_2_" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) . field_identifier) )))) ;) (expression_statement "sStack_268 = (ushort)(byte)uStack_1e4 << 8;" (assignment_expression "sStack_268 = (ushort)(byte)uStack_1e4 << 8" identifier = (binary_expression "(ushort)(byte)uStack_1e4 << 8" (cast_expression "(ushort)(byte)uStack_1e4" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_1e4" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);" (assignment_expression "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (subscript_expression "aiStack_274[2]" identifier [ number_literal ]) = (cast_expression "(int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (binary_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff" (call_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8))" identifier (argument_list "(uVar8,(char)(uStack_1e4 >> 8))" ( identifier , (cast_expression "(char)(uStack_1e4 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uStack_1e4 >> 8)" ( (binary_expression "uStack_1e4 >> 8" identifier >> number_literal) ))) ))) & number_literal) )))) ;) (expression_statement "iStack_220 = iVar5;" (assignment_expression "iStack_220 = iVar5" identifier = identifier) ;) (expression_statement "iStack_21c = iVar15;" (assignment_expression "iStack_21c = iVar15" identifier = identifier) ;) (expression_statement "puStack_214 = unaff_s3;" (assignment_expression "puStack_214 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_210 = piVar21;" (assignment_expression "piStack_210 = piVar21" identifier = identifier) ;) (expression_statement "piStack_20c = piVar23;" (assignment_expression "piStack_20c = piVar23" identifier = identifier) ;) (expression_statement "iStack_204 = iVar9;" (assignment_expression "iStack_204 = iVar9" identifier = identifier) ;) (expression_statement "puStack_200 = puVar16;" (assignment_expression "puStack_200 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar26;" (assignment_expression "pcStack_1fc = pcVar26" identifier = identifier) ;) (expression_statement "iStack_1f8 = iVar22;" (assignment_expression "iStack_1f8 = iVar22" identifier = identifier) ;) (if_statement "if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);\n    iVar15 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }\n  }" if (parenthesized_expression "(piStack_1dc != (int *)0x0)" ( (binary_expression "piStack_1dc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);\n    iVar15 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar6 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1a50" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar6 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "iVar15 = *(int *)(pcVar25 + 0x2aa1c);" (assignment_expression "iVar15 = *(int *)(pcVar25 + 0x2aa1c)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa1c)" * (cast_expression "(int *)(pcVar25 + 0x2aa1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa1c)" ( (binary_expression "pcVar25 + 0x2aa1c" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = aiStack_274 + 1;" (assignment_expression "piVar24 = aiStack_274 + 1" identifier = (binary_expression "aiStack_274 + 1" identifier + number_literal)) ;) (do_statement "do {\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    } while (&uStack_266 != piVar21);" do (compound_statement "{\n      piVar21 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar21;\n    }" { (expression_statement "piVar21 = (int *)((int)piVar24 + 1);" (assignment_expression "piVar21 = (int *)((int)piVar24 + 1)" identifier = (cast_expression "(int *)((int)piVar24 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 1)" ( (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(iVar15 + 0x1f1c,*(undefined1 *)piVar24)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(iVar15 + 0x1f1c,*(undefined1 *)piVar24)" ( (binary_expression "iVar15 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)piVar24" * (cast_expression "(undefined1 *)piVar24" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "piVar24 = piVar21;" (assignment_expression "piVar24 = piVar21" identifier = identifier) ;) }) while (parenthesized_expression "(&uStack_266 != piVar21)" ( (binary_expression "&uStack_266 != piVar21" (pointer_expression "&uStack_266" & identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x990)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x990" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (1 < (int)piVar12) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }" if (parenthesized_expression "(1 < (int)piVar12)" ( (binary_expression "1 < (int)piVar12" number_literal < (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);\n    }" { (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (if_statement "if ((puVar18 == (uint8_t *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;" if (parenthesized_expression "((puVar18 == (uint8_t *)0x0) || (uVar11 == 0))" ( (binary_expression "(puVar18 == (uint8_t *)0x0) || (uVar11 == 0)" (parenthesized_expression "(puVar18 == (uint8_t *)0x0)" ( (binary_expression "puVar18 == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029ecc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar6 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x13cc" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar6 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff);" (call_expression "(**(code **)(pcVar25 + 0x2aa7c))(puVar18,uVar11,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa7c)" * (cast_expression "(code **)(pcVar25 + 0x2aa7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa7c)" ( (binary_expression "pcVar25 + 0x2aa7c" identifier + number_literal) ))))) )) (argument_list "(puVar18,uVar11,0xffffffff)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00029ecc:\n  iVar15 = (*pcVar26)();" statement_identifier : (expression_statement "iVar15 = (*pcVar26)();" (assignment_expression "iVar15 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar15 == 0) {\n    iVar5 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);\n  }" { (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar6 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1974" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar6 + -0x10c0" identifier + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }" else (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);\n    iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);\n    if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar15);\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10);" (call_expression "(**(code **)(pcVar25 + 0x2aa40))(iVar15,aiStack_274 + 1,10)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa40))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa40)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa40)" * (cast_expression "(code **)(pcVar25 + 0x2aa40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa40)" ( (binary_expression "pcVar25 + 0x2aa40" identifier + number_literal) ))))) )) (argument_list "(iVar15,aiStack_274 + 1,10)" ( identifier , (binary_expression "aiStack_274 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40);" (call_expression "(**(code **)(pcVar25 + 0x2aad4))(iVar15,(int)&uStack_266 + 2,0x40)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aad4))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aad4)" * (pointer_expression "*(code **)(pcVar25 + 0x2aad4)" * (cast_expression "(code **)(pcVar25 + 0x2aad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aad4)" ( (binary_expression "pcVar25 + 0x2aad4" identifier + number_literal) ))))) )) (argument_list "(iVar15,(int)&uStack_266 + 2,0x40)" ( identifier , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11);" (call_expression "(**(code **)(pcVar25 + 0x2ac54))(iVar15,puVar18,uVar11)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac54))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac54)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac54)" * (cast_expression "(code **)(pcVar25 + 0x2ac54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac54)" ( (binary_expression "pcVar25 + 0x2ac54" identifier + number_literal) ))))) )) (argument_list "(iVar15,puVar18,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab64))(iVar15,iStack_1f8,mx_resp_len,piVar12)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab64))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab64)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab64)" * (cast_expression "(code **)(pcVar25 + 0x2ab64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab64)" ( (binary_expression "pcVar25 + 0x2ab64" identifier + number_literal) ))))) )) (argument_list "(iVar15,iStack_1f8,mx_resp_len,piVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274);" (assignment_expression "iVar5 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2aab0))\n                      (iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aab0))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aab0)" * (pointer_expression "*(code **)(pcVar25 + 0x2aab0)" * (cast_expression "(code **)(pcVar25 + 0x2aab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aab0)" ( (binary_expression "pcVar25 + 0x2aab0" identifier + number_literal) ))))) )) (argument_list "(iVar15,iVar6 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar12\n                       ,aiStack_274)" ( identifier , (binary_expression "iVar6 + -0x10c0" identifier + number_literal) , identifier , number_literal , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , (binary_expression "uStack_1e0 & 0xff" identifier & number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar5 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);\n      iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar15)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ac7c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac7c)" * (cast_expression "(code **)(pcVar25 + 0x2ac7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac7c)" ( (binary_expression "pcVar25 + 0x2ac7c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (expression_statement "iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);" (assignment_expression "iVar5 = (**(code **)(pcVar25 + 0x2ab08))(uVar7)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab08))(uVar7)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab08))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab08)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab08)" * (cast_expression "(code **)(pcVar25 + 0x2ab08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab08)" ( (binary_expression "pcVar25 + 0x2ab08" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }" else (if_statement "if (iVar5 == -2) {\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }\n    else {\n      iVar5 = 0;\n    }" if (parenthesized_expression "(iVar5 == -2)" ( (binary_expression "iVar5 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar5 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }\n    }" { (expression_statement "iVar5 = aiStack_274[0];" (assignment_expression "iVar5 = aiStack_274[0]" identifier = (subscript_expression "aiStack_274[0]" identifier [ number_literal ])) ;) (if_statement "if (aiStack_274[0] - 0x14U < 2) {\n        iVar5 = 0;\n      }" if (parenthesized_expression "(aiStack_274[0] - 0x14U < 2)" ( (binary_expression "aiStack_274[0] - 0x14U < 2" (binary_expression "aiStack_274[0] - 0x14U" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar5 = 0;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar5 = 0;\n    }" else (compound_statement "{\n      iVar5 = 0;\n    }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcVar25 + 0x2ab4c))(iVar15);" (call_expression "(**(code **)(pcVar25 + 0x2ab4c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab4c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab4c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab4c)" * (cast_expression "(code **)(pcVar25 + 0x2ab4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab4c)" ( (binary_expression "pcVar25 + 0x2ab4c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier ))) ;) }))) (if_statement "if (iStack_224 != *piVar20) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar15 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar15;\n  }" if (parenthesized_expression "(iStack_224 != *piVar20)" ( (binary_expression "iStack_224 != *piVar20" identifier != (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar15 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar15;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar25 + 0x2abfc);" (assignment_expression "pcVar25 = *(code **)(pcVar25 + 0x2abfc)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2abfc)" * (cast_expression "(code **)(pcVar25 + 0x2abfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2abfc)" ( (binary_expression "pcVar25 + 0x2abfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar15 = (**(code **)(pcVar25 + 0x2a938))();" (assignment_expression "iVar15 = (**(code **)(pcVar25 + 0x2a938))()" identifier = (call_expression "(**(code **)(pcVar25 + 0x2a938))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x2a938))" ( (pointer_expression "**(code **)(pcVar25 + 0x2a938)" * (pointer_expression "*(code **)(pcVar25 + 0x2a938)" * (cast_expression "(code **)(pcVar25 + 0x2a938)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2a938)" ( (binary_expression "pcVar25 + 0x2a938" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar15;" return identifier ;) })) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}\n\n" (function_definition "int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" primitive_type (function_declarator "sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "byte param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "byte param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" { (declaration "uint3 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int aiStack_274 [3];" primitive_type (array_declarator "aiStack_274 [3]" identifier [ number_literal ]) ;) (declaration "short sStack_268;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uStack_266;" type_identifier identifier ;) (declaration "int iStack_224;" primitive_type identifier ;) (declaration "int iStack_220;" primitive_type identifier ;) (declaration "int iStack_21c;" primitive_type identifier ;) (declaration "uint uStack_218;" type_identifier identifier ;) (declaration "undefined *puStack_214;" type_identifier (pointer_declarator "*puStack_214" * identifier) ;) (declaration "int *piStack_210;" primitive_type (pointer_declarator "*piStack_210" * identifier) ;) (declaration "int *piStack_20c;" primitive_type (pointer_declarator "*piStack_20c" * identifier) ;) (declaration "uint uStack_208;" type_identifier identifier ;) (declaration "int iStack_204;" primitive_type identifier ;) (declaration "undefined4 *puStack_200;" type_identifier (pointer_declarator "*puStack_200" * identifier) ;) (declaration "code *pcStack_1fc;" type_identifier (pointer_declarator "*pcStack_1fc" * identifier) ;) (declaration "int iStack_1f8;" primitive_type identifier ;) (declaration "undefined *puStack_1e8;" type_identifier (pointer_declarator "*puStack_1e8" * identifier) ;) (declaration "uint uStack_1e4;" type_identifier identifier ;) (declaration "uint uStack_1e0;" type_identifier identifier ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "code *pcStack_1d8;" type_identifier (pointer_declarator "*pcStack_1d8" * identifier) ;) (declaration "int iStack_1cc;" primitive_type identifier ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "undefined4 uStack_1c4;" type_identifier identifier ;) (declaration "short sStack_1c0;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 uStack_1be;" type_identifier identifier ;) (declaration "int iStack_17c;" primitive_type identifier ;) (declaration "int iStack_178;" primitive_type identifier ;) (declaration "int iStack_174;" primitive_type identifier ;) (declaration "int *piStack_170;" primitive_type (pointer_declarator "*piStack_170" * identifier) ;) (declaration "undefined *puStack_16c;" type_identifier (pointer_declarator "*puStack_16c" * identifier) ;) (declaration "int *piStack_168;" primitive_type (pointer_declarator "*piStack_168" * identifier) ;) (declaration "int iStack_164;" primitive_type identifier ;) (declaration "undefined *puStack_160;" type_identifier (pointer_declarator "*puStack_160" * identifier) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "undefined4 *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "code *pcStack_154;" type_identifier (pointer_declarator "*pcStack_154" * identifier) ;) (declaration "undefined *puStack_140;" type_identifier (pointer_declarator "*puStack_140" * identifier) ;) (declaration "uint uStack_13c;" type_identifier identifier ;) (declaration "int *piStack_138;" primitive_type (pointer_declarator "*piStack_138" * identifier) ;) (declaration "int *piStack_134;" primitive_type (pointer_declarator "*piStack_134" * identifier) ;) (declaration "undefined *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "int iStack_124;" primitive_type identifier ;) (declaration "undefined4 uStack_120;" type_identifier identifier ;) (declaration "undefined2 uStack_11c;" type_identifier identifier ;) (declaration "undefined1 uStack_11a;" type_identifier identifier ;) (declaration "undefined1 uStack_119;" type_identifier identifier ;) (declaration "undefined1 uStack_118;" type_identifier identifier ;) (declaration "undefined1 uStack_117;" type_identifier identifier ;) (declaration "undefined4 uStack_116;" type_identifier identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "undefined *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "undefined *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "undefined4 uStack_b4;" type_identifier identifier ;) (declaration "undefined4 *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined2 local_74;" type_identifier identifier ;) (declaration "undefined1 local_72;" type_identifier identifier ;) (declaration "undefined1 local_71;" type_identifier identifier ;) (declaration "undefined1 local_70;" type_identifier identifier ;) (declaration "undefined1 local_6f;" type_identifier identifier ;) (declaration "undefined4 uStack_6e;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00054a4c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_s_tatus_00054840;" (assignment_expression "puVar2 = PTR_s_tatus_00054840" identifier = identifier) ;) (expression_statement "local_78._1_1_ = param_2 & 0x1f;" (assignment_expression "local_78._1_1_ = param_2 & 0x1f" (field_expression "local_78._1_1_" identifier . field_identifier) = (binary_expression "param_2 & 0x1f" identifier & number_literal)) ;) (expression_statement "local_78._0_1_ = 0x3c;" (assignment_expression "local_78._0_1_ = 0x3c" (field_expression "local_78._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_6f = 0;" (assignment_expression "local_6f = 0" identifier = number_literal) ;) (expression_statement "local_78._2_1_ = (undefined1)param_3;" (assignment_expression "local_78._2_1_ = (undefined1)param_3" (field_expression "local_78._2_1_" identifier . field_identifier) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10)" (field_expression "local_78._3_1_" identifier . field_identifier) = (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x10)" ( (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (undefined2)param_4;" (assignment_expression "local_74 = (undefined2)param_4" identifier = (cast_expression "(undefined2)param_4" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "local_72 = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "local_72 = (undefined1)((uint)param_6 >> 0x10)" identifier = (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 0x10)" ( (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_71 = (undefined1)((uint)param_6 >> 8);" (assignment_expression "local_71 = (undefined1)((uint)param_6 >> 8)" identifier = (call_expression "(undefined1)((uint)param_6 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 8)" ( (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_70 = (undefined1)param_6;" (assignment_expression "local_70 = (undefined1)param_6" identifier = (cast_expression "(undefined1)param_6" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" * (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "cVar15 = (char)PTR_s_tatus_00054840;" (assignment_expression "cVar15 = (char)PTR_s_tatus_00054840" identifier = (cast_expression "(char)PTR_s_tatus_00054840" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }" { (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0002970c;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002970c;" goto statement_identifier ;)) (labeled_statement "LAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" statement_identifier : (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,&local_78,10)" ( identifier , (pointer_expression "&local_78" & identifier) , number_literal ))) ;)) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_6e + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_6e + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_6e + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_6e + 2)" ( (binary_expression "(int)&uStack_6e + 2" (cast_expression "(int)&uStack_6e" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_6e" & identifier)) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_5,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);" (assignment_expression "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" identifier = (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" * (cast_expression "(code *)PTR_do_scsi_pt_00054984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,param_1,0x3c,param_8)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "local_8c = &local_7c;" (assignment_expression "local_8c = &local_7c" identifier = (pointer_expression "&local_7c" & identifier)) ;) (expression_statement "local_94 = (uint)param_7;" (assignment_expression "local_94 = (uint)param_7" identifier = (cast_expression "(uint)param_7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" identifier = (binary_expression "cVar15 + 0x5c" identifier + number_literal)) ;) (expression_statement "local_90 = param_8;" (assignment_expression "local_90 = param_8" identifier = identifier) ;) (expression_statement "local_98 = unaff_s3;" (assignment_expression "local_98 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);" (assignment_expression "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" identifier = (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }" { (expression_statement "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);" (assignment_expression "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);" (assignment_expression "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar7)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" * (cast_expression "(code *)PTR_sg_convert_errno_00054928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = local_7c;" (assignment_expression "iVar6 = local_7c" identifier = identifier) ;) (if_statement "if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(local_7c - 0x14U < 2)" ( (binary_expression "local_7c - 0x14U < 2" (binary_expression "local_7c - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (if_statement "if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" if (parenthesized_expression "(((int)param_8 < 3) || (iVar6 < 1))" ( (binary_expression "((int)param_8 < 3) || (iVar6 < 1)" (parenthesized_expression "((int)param_8 < 3)" ( (binary_expression "(int)param_8 < 3" (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) ))) )) (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x16d4" identifier + number_literal) , (binary_expression "puVar2 + -0x11a4" identifier + number_literal) ))) ;) (if_statement "if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" if (parenthesized_expression "(param_8 == 3)" ( (binary_expression "param_8 == 3" identifier == number_literal) )) (compound_statement "{\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }" { (expression_statement "param_8 = (uint)(iVar6 < 0x101);" (assignment_expression "param_8 = (uint)(iVar6 < 0x101)" identifier = (call_expression "(uint)(iVar6 < 0x101)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 < 0x101)" ( (binary_expression "iVar6 < 0x101" identifier < number_literal) )))) ;) (if_statement "if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1710;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1710" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1710" identifier + number_literal)) ;) }) (else_clause "else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" else (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" { (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1a5c;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1a5c" identifier = (binary_expression "PTR_s_tatus_00054840 + -0x1a5c" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005483c + 0x23c4,puVar10)" ( (binary_expression "PTR_LAB_0005483c + 0x23c4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_3 = 0xffffffff;" (assignment_expression "param_3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_8 != 0) {\n          iVar12 = iVar6;\n        }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = iVar6;\n        }" { (expression_statement "iVar12 = iVar6;" (assignment_expression "iVar12 = iVar6" identifier = identifier) ;) })) (expression_statement "bVar14 = (byte)iVar12;" (assignment_expression "bVar14 = (byte)iVar12" identifier = (cast_expression "(byte)iVar12" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" else (compound_statement "{\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" { (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x570)" ( (binary_expression "PTR_s_tatus_00054840 + -0x570" identifier + number_literal) ))) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005489c" * (cast_expression "(code *)PTR_hex2stderr_0005489c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5)" ( identifier ))) ;) (expression_statement "bVar14 = (byte)iVar6;" (assignment_expression "bVar14 = (byte)iVar6" identifier = (cast_expression "(byte)iVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005496c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005496c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) }) (else_clause "else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" else (compound_statement "{\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" { (expression_statement "unaff_s8 = &uStack_6e;" (assignment_expression "unaff_s8 = &uStack_6e" identifier = (pointer_expression "&uStack_6e" & identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1a50" identifier + number_literal) , (binary_expression "PTR_s_tatus_00054840 + -0x11a4" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "unaff_s3 = PTR_LAB_0005483c + 0x1f1c" identifier = (binary_expression "PTR_LAB_0005483c + 0x1f1c" identifier + number_literal)) ;) (expression_statement "puVar16 = &local_78;" (assignment_expression "puVar16 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (do_statement "do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);" do (compound_statement "{\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    }" { (expression_statement "puVar17 = (undefined4 *)((int)puVar16 + 1);" (assignment_expression "puVar17 = (undefined4 *)((int)puVar16 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar16 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 1)" ( (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,*(undefined1 *)puVar16)" ( identifier , (pointer_expression "*(undefined1 *)puVar16" * (cast_expression "(undefined1 *)puVar16" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s8 != puVar17)" ( (binary_expression "unaff_s8 != puVar17" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x990)" ( (binary_expression "PTR_s_tatus_00054840 + -0x990" identifier + number_literal) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" identifier = (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" ( (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" * (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0002951c;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002951c;" goto statement_identifier ;)) (labeled_statement "LAB_0002970c:\n    bVar14 = cVar15 + 0x5c;" statement_identifier : (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" identifier = (binary_expression "cVar15 + 0x5c" identifier + number_literal)) ;)) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000548ec" * (cast_expression "(code *)PTR_pr2ws_000548ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_tatus_00054840 + -0x1974)" ( (binary_expression "PTR_s_tatus_00054840 + -0x1974" identifier + number_literal) ))) ;) (expression_statement "param_6 = param_4;" (assignment_expression "param_6 = param_4" identifier = identifier) ;) }))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = sg_ll_write_buffer;" (assignment_expression "pcVar25 = sg_ll_write_buffer" identifier = identifier) ;) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = local_8c;" (assignment_expression "piVar13 = local_8c" identifier = identifier) ;) (expression_statement "uVar4 = local_94;" (assignment_expression "uVar4 = local_94" identifier = identifier) ;) (expression_statement "puVar10 = local_98;" (assignment_expression "puVar10 = local_98" identifier = identifier) ;) (expression_statement "puStack_130 = puVar23 + 0x33060;" (assignment_expression "puStack_130 = puVar23 + 0x33060" identifier = (binary_expression "puVar23 + 0x33060" identifier + number_literal)) ;) (expression_statement "uStack_120._1_1_ = bVar14 & 0x1f;" (assignment_expression "uStack_120._1_1_ = bVar14 & 0x1f" (field_expression "uStack_120._1_1_" identifier . field_identifier) = (binary_expression "bVar14 & 0x1f" identifier & number_literal)) ;) (expression_statement "puStack_c0 = puVar3;" (assignment_expression "puStack_c0 = puVar3" identifier = identifier) ;) (expression_statement "piVar19 = *(int **)(puVar23 + 0x2b29c);" (assignment_expression "piVar19 = *(int **)(puVar23 + 0x2b29c)" identifier = (pointer_expression "*(int **)(puVar23 + 0x2b29c)" * (cast_expression "(int **)(puVar23 + 0x2b29c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x2b29c)" ( (binary_expression "puVar23 + 0x2b29c" identifier + number_literal) ))))) ;) (expression_statement "uStack_b8 = param_5;" (assignment_expression "uStack_b8 = param_5" identifier = identifier) ;) (expression_statement "puStack_bc = puVar2;" (assignment_expression "puStack_bc = puVar2" identifier = identifier) ;) (expression_statement "uStack_120._0_1_ = 0x3b;" (assignment_expression "uStack_120._0_1_ = 0x3b" (field_expression "uStack_120._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_117 = 0;" (assignment_expression "uStack_117 = 0" identifier = number_literal) ;) (expression_statement "uStack_120._2_1_ = (undefined1)param_3;" (assignment_expression "uStack_120._2_1_ = (undefined1)param_3" (field_expression "uStack_120._2_1_" identifier . field_identifier) = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10)" (field_expression "uStack_120._3_1_" identifier . field_identifier) = (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_6 >> 0x10)" ( (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_11c = (undefined2)param_6;" (assignment_expression "uStack_11c = (undefined2)param_6" identifier = (cast_expression "(undefined2)param_6" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (expression_statement "uStack_11a = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_11a = (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 "uStack_119 = (undefined1)(local_94 >> 8);" (assignment_expression "uStack_119 = (undefined1)(local_94 >> 8)" identifier = (call_expression "(undefined1)(local_94 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_94 >> 8)" ( (binary_expression "local_94 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uStack_118 = (undefined1)local_94;" (assignment_expression "uStack_118 = (undefined1)local_94" identifier = (cast_expression "(undefined1)local_94" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iStack_d4 = *piVar19;" (assignment_expression "iStack_d4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "iVar21 = *(int *)(puVar23 + 0x2b090);" (assignment_expression "iVar21 = *(int *)(puVar23 + 0x2b090)" identifier = (pointer_expression "*(int *)(puVar23 + 0x2b090)" * (cast_expression "(int *)(puVar23 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x2b090)" ( (binary_expression "puVar23 + 0x2b090" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = unaff_s8;" (assignment_expression "puVar16 = unaff_s8" identifier = identifier) ;) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" identifier = identifier) ;) (expression_statement "iStack_cc = iVar6;" (assignment_expression "iStack_cc = iVar6" identifier = identifier) ;) (expression_statement "uStack_c8 = param_8;" (assignment_expression "uStack_c8 = param_8" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "uStack_b4 = param_1;" (assignment_expression "uStack_b4 = param_1" identifier = identifier) ;) (expression_statement "puStack_b0 = unaff_s8;" (assignment_expression "puStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar25;" (assignment_expression "pcStack_ac = pcVar25" identifier = identifier) ;) (expression_statement "uVar8 = uStack_120._2_1_;" (assignment_expression "uVar8 = uStack_120._2_1_" identifier = (field_expression "uStack_120._2_1_" identifier . field_identifier)) ;) (if_statement "if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" if (parenthesized_expression "(local_8c == (int *)0x0)" ( (binary_expression "local_8c == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }" { (labeled_statement "LAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);" statement_identifier : (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" else (compound_statement "{\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" { (expression_statement "puVar16 = &uStack_116;" (assignment_expression "puVar16 = &uStack_116" identifier = (pointer_expression "&uStack_116" & identifier)) ;) (expression_statement "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);" (call_expression "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puVar23 + 0x2b13c))" ( (pointer_expression "**(code **)(puVar23 + 0x2b13c)" * (pointer_expression "*(code **)(puVar23 + 0x2b13c)" * (cast_expression "(code **)(puVar23 + 0x2b13c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x2b13c)" ( (binary_expression "puVar23 + 0x2b13c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" ( (binary_expression "*(int *)(puVar23 + 0x2b090) + -0x1a50" (pointer_expression "*(int *)(puVar23 + 0x2b090)" * (cast_expression "(int *)(puVar23 + 0x2b090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x2b090)" ( (binary_expression "puVar23 + 0x2b090" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x1194" identifier + number_literal) ))) ;) (expression_statement "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar17 = &uStack_120;" (assignment_expression "puVar17 = &uStack_120" identifier = (pointer_expression "&uStack_120" & identifier)) ;) (do_statement "do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);" do (compound_statement "{\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    }" { (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = (undefined1)param_3;" (assignment_expression "uVar8 = (undefined1)param_3" identifier = (cast_expression "(undefined1)param_3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) }) while (parenthesized_expression "(puVar16 != puVar18)" ( (binary_expression "puVar16 != puVar18" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if ((int)piVar13 < 2) goto LAB_0002984c;" if (parenthesized_expression "((int)piVar13 < 2)" ( (binary_expression "(int)piVar13 < 2" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" * (cast_expression "(code **)(puStack_130 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7dbc)" ( (binary_expression "puStack_130 + -0x7dbc" identifier + number_literal) ))))) ;) (if_statement "if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" if (parenthesized_expression "((puVar10 != (undefined *)0x0) && (uVar4 != 0))" ( (binary_expression "(puVar10 != (undefined *)0x0) && (uVar4 != 0)" (parenthesized_expression "(puVar10 != (undefined *)0x0)" ( (binary_expression "puVar10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);" (call_expression "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1184" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar21 + -0x1194" identifier + number_literal) ))) ;) (if_statement "if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" if (parenthesized_expression "(piVar13 == (int *)0x2)" ( (binary_expression "piVar13 == (int *)0x2" identifier == (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }" { (if_statement "if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" if (parenthesized_expression "(0x100 < (int)uVar4)" ( (binary_expression "0x100 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1710" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" else (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" { (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x23c4" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" * (cast_expression "(int *)(puStack_130 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd4)" ( (binary_expression "puStack_130 + -0x7fd4" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0x100;" (assignment_expression "uVar11 = 0x100" identifier = number_literal) ;) (if_statement "if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }" if (parenthesized_expression "(0x100 >= (int)uVar4)" ( (binary_expression "0x100 >= (int)uVar4" number_literal >= (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar11 = uVar4;\n        }" { (expression_statement "uVar11 = uVar4;" (assignment_expression "uVar11 = uVar4" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar10,uVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" else (compound_statement "{\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" { (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x570)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x570" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f74)" * (pointer_expression "*(code **)(puStack_130 + -0x7f74)" * (cast_expression "(code **)(puStack_130 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f74)" ( (binary_expression "puStack_130 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar10,uVar4)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0002984c;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = (*pcVar25)();" (assignment_expression "iVar5 = (*pcVar25)()" identifier = (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }" { (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" identifier = (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f24)" * (pointer_expression "*(code **)(puStack_130 + -0x7f24)" * (cast_expression "(code **)(puStack_130 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f24)" ( (binary_expression "puStack_130 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" * (cast_expression "(int *)(puStack_130 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_130 + -0x7fd0)" ( (binary_expression "puStack_130 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" else (compound_statement "{\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" { (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" * (cast_expression "(code **)(puStack_130 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7fb0)" ( (binary_expression "puStack_130 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_120,10)" ( identifier , (pointer_expression "&uStack_120" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_116 + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_116 + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_116 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_116 + 2)" ( (binary_expression "(int)&uStack_116 + 2" (cast_expression "(int)&uStack_116" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_116" & identifier)) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" * (cast_expression "(code **)(puStack_130 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f1c)" ( (binary_expression "puStack_130 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d9c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d9c)" * (pointer_expression "*(code **)(puStack_130 + -0x7d9c)" * (cast_expression "(code **)(puStack_130 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d9c)" ( (binary_expression "puStack_130 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,puVar10,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);" (assignment_expression "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" * (cast_expression "(code **)(puStack_130 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7e8c)" ( (binary_expression "puStack_130 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar12,0x3c,piVar13)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "piStack_134 = &iStack_124;" (assignment_expression "piStack_134 = &iStack_124" identifier = (pointer_expression "&iStack_124" & identifier)) ;) (expression_statement "uStack_13c = local_90 & 0xff;" (assignment_expression "uStack_13c = local_90 & 0xff" identifier = (binary_expression "local_90 & 0xff" identifier & number_literal)) ;) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" identifier = number_literal) ;) (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" identifier = (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'l'" ' character '))) ;) (expression_statement "piStack_138 = piVar13;" (assignment_expression "piStack_138 = piVar13" identifier = identifier) ;) (expression_statement "puStack_140 = unaff_s3;" (assignment_expression "puStack_140 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_130 + -0x7f40)" * (pointer_expression "*(code **)(puStack_130 + -0x7f40)" * (cast_expression "(code **)(puStack_130 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7f40)" ( (binary_expression "puStack_130 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" ( (pointer_expression "**(code **)(puStack_130 + -0x7d74)" * (pointer_expression "*(code **)(puStack_130 + -0x7d74)" * (cast_expression "(code **)(puStack_130 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7d74)" ( (binary_expression "puStack_130 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" * (cast_expression "(code **)(puStack_130 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ee8)" ( (binary_expression "puStack_130 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = iStack_124;" (assignment_expression "iVar6 = iStack_124" identifier = identifier) ;) (if_statement "if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(iStack_124 - 0x14U < 2)" ( (binary_expression "iStack_124 - 0x14U < 2" (binary_expression "iStack_124 - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar6 = 0;\n    }" else (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(puStack_130 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_130 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" * (cast_expression "(code **)(puStack_130 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7ea4)" ( (binary_expression "puStack_130 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (if_statement "if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_d4 == *piVar19)" ( (binary_expression "iStack_d4 == *piVar19" identifier == (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_130 + -0x7df4)" * (cast_expression "(code **)(puStack_130 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_130 + -0x7df4)" ( (binary_expression "puStack_130 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_write_buffer_v2;" (assignment_expression "pcVar26 = sg_ll_write_buffer_v2" identifier = identifier) ;) (expression_statement "iVar9 = iStack_d4;" (assignment_expression "iVar9 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar20 = piStack_134;" (assignment_expression "piVar20 = piStack_134" identifier = identifier) ;) (expression_statement "piVar24 = piStack_138;" (assignment_expression "piVar24 = piStack_138" identifier = identifier) ;) (expression_statement "uVar4 = uStack_13c;" (assignment_expression "uVar4 = uStack_13c" identifier = identifier) ;) (expression_statement "pcStack_1d8 = pcVar25 + 0x32d3c;" (assignment_expression "pcStack_1d8 = pcVar25 + 0x32d3c" identifier = (binary_expression "pcVar25 + 0x32d3c" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar25 + 0x2af78);" (assignment_expression "piVar22 = *(int **)(pcVar25 + 0x2af78)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2af78)" * (cast_expression "(int **)(pcVar25 + 0x2af78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2af78)" ( (binary_expression "pcVar25 + 0x2af78" identifier + number_literal) ))))) ;) (expression_statement "iStack_17c = *piVar22;" (assignment_expression "iStack_17c = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puStack_160 = puVar10;" (assignment_expression "puStack_160 = puVar10" identifier = identifier) ;) (expression_statement "piStack_170 = piVar13;" (assignment_expression "piStack_170 = piVar13" identifier = identifier) ;) (expression_statement "uStack_1c8 = 0x3b000000;" (assignment_expression "uStack_1c8 = 0x3b000000" identifier = number_literal) ;) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" identifier = number_literal) ;) (expression_statement "sStack_1c0 = 0;" (assignment_expression "sStack_1c0 = 0" identifier = number_literal) ;) (expression_statement "iStack_178 = iVar5;" (assignment_expression "iStack_178 = iVar5" identifier = identifier) ;) (expression_statement "iStack_174 = iVar6;" (assignment_expression "iStack_174 = iVar6" identifier = identifier) ;) (expression_statement "puStack_16c = unaff_s3;" (assignment_expression "puStack_16c = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_168 = piVar19;" (assignment_expression "piStack_168 = piVar19" identifier = identifier) ;) (expression_statement "iStack_164 = iVar21;" (assignment_expression "iStack_164 = iVar21" identifier = identifier) ;) (expression_statement "iStack_15c = iVar12;" (assignment_expression "iStack_15c = iVar12" identifier = identifier) ;) (expression_statement "puStack_158 = puVar16;" (assignment_expression "puStack_158 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_154 = pcVar26;" (assignment_expression "pcStack_154 = pcVar26" identifier = identifier) ;) (if_statement "if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" if (parenthesized_expression "(puStack_140 < (undefined *)0x1000000)" ( (binary_expression "puStack_140 < (undefined *)0x1000000" identifier < (cast_expression "(undefined *)0x1000000" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" if (parenthesized_expression "(piStack_138 < (int *)0x1000000)" ( (binary_expression "piStack_138 < (int *)0x1000000" identifier < (cast_expression "(int *)0x1000000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }" { (expression_statement "sStack_1c0 = (ushort)(byte)piStack_138 << 8;" (assignment_expression "sStack_1c0 = (ushort)(byte)piStack_138 << 8" identifier = (binary_expression "(ushort)(byte)piStack_138 << 8" (cast_expression "(ushort)(byte)piStack_138" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)piStack_138" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));" (assignment_expression "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" identifier = (call_expression "CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" identifier (argument_list "(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" ( (call_expression "CONCAT21(0x3b00,(char)param_6)" identifier (argument_list "(0x3b00,(char)param_6)" ( number_literal , (cast_expression "(char)param_6" ( (type_descriptor "char" primitive_type) ) identifier) ))) , (cast_expression "(char)((uint)puStack_140 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)puStack_140 >> 0x10)" ( (binary_expression "(uint)puStack_140 >> 0x10" (cast_expression "(uint)puStack_140" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);" (assignment_expression "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_)" identifier = (call_expression "CONCAT12(cVar15,uStack_1c8._2_2_)" identifier (argument_list "(cVar15,uStack_1c8._2_2_)" ( identifier , (field_expression "uStack_1c8._2_2_" identifier . field_identifier) )))) ;) (expression_statement "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);" (assignment_expression "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier = (call_expression "CONCAT13(0x3b,uVar1 & 0x1fffff)" identifier (argument_list "(0x3b,uVar1 & 0x1fffff)" ( number_literal , (binary_expression "uVar1 & 0x1fffff" identifier & number_literal) )))) ;) (expression_statement "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));" (assignment_expression "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier = (call_expression "CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" identifier (argument_list "(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" ( (call_expression "CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" identifier (argument_list "((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" ( (cast_expression "(short)puStack_140" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(char)((uint)piStack_138 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 0x10)" ( (binary_expression "(uint)piStack_138 >> 0x10" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) ))) , (cast_expression "(char)((uint)piStack_138 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piStack_138 >> 8)" ( (binary_expression "(uint)piStack_138 >> 8" (cast_expression "(uint)piStack_138" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" { (expression_statement "puVar16 = &uStack_1be;" (assignment_expression "puVar16 = &uStack_1be" identifier = (pointer_expression "&uStack_1be" & identifier)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x10fc" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" identifier = (cast_expression "(undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar17 = &uStack_1c8;" (assignment_expression "puVar17 = &uStack_1c8" identifier = (pointer_expression "&uStack_1c8" & identifier)) ;) (do_statement "do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);" do (compound_statement "{\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        }" { (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar17 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 1)" ( (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" ( identifier , (pointer_expression "*(undefined1 *)puVar17" * (cast_expression "(undefined1 *)puVar17" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uVar8 = (undefined1)uVar7;" (assignment_expression "uVar8 = (undefined1)uVar7" identifier = (cast_expression "(undefined1)uVar7" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) }) while (parenthesized_expression "(puVar18 != puVar16)" ( (binary_expression "puVar18 != puVar16" identifier != identifier) )) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" if (parenthesized_expression "(((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0))" ( (binary_expression "((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)" (parenthesized_expression "((1 < (int)uStack_12c) && (uVar4 != 0))" ( (binary_expression "(1 < (int)uStack_12c) && (uVar4 != 0)" (parenthesized_expression "(1 < (int)uStack_12c)" ( (binary_expression "1 < (int)uStack_12c" number_literal < (cast_expression "(int)uStack_12c" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" { (if_statement "if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" if (parenthesized_expression "((int *)0x100 < piVar24)" ( (binary_expression "(int *)0x100 < piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }" { (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" else (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" { (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)0x100;" (assignment_expression "piVar13 = (int *)0x100" identifier = (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }" if (parenthesized_expression "((int *)0x100 >= piVar24)" ( (binary_expression "(int *)0x100 >= piVar24" (cast_expression "(int *)0x100" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) >= identifier) )) (compound_statement "{\n            piVar13 = piVar24;\n          }" { (expression_statement "piVar13 = piVar24;" (assignment_expression "piVar13 = piVar24" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f74)" ( (binary_expression "pcStack_1d8 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(uVar4,piVar13)" ( identifier , identifier ))) ;) })) })) (if_statement "if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }" if (parenthesized_expression "((int)piVar20 < 1)" ( (binary_expression "(int)piVar20 < 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        piVar20 = (int *)0x3c;\n      }" { (expression_statement "piVar20 = (int *)0x3c;" (assignment_expression "piVar20 = (int *)0x3c" identifier = (cast_expression "(int *)0x3c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();" (assignment_expression "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))()" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7dbc))()" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7dbc))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7dbc)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7dbc)" * (cast_expression "(code **)(pcStack_1d8 + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7dbc)" ( (binary_expression "pcStack_1d8 + -0x7dbc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f24)" ( (binary_expression "pcStack_1d8 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" ( (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" ( (binary_expression "pcStack_1d8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" else (compound_statement "{\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" { (expression_statement "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);" (call_expression "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1d8 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7fb0)" ( (binary_expression "pcStack_1d8 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar5,&uStack_1c8,10)" ( identifier , (pointer_expression "&uStack_1c8" & identifier) , number_literal ))) ;) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_1be + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_1be + 2)" identifier = (cast_expression "(undefined *)((int)&uStack_1be + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_1be + 2)" ( (binary_expression "(int)&uStack_1be + 2" (cast_expression "(int)&uStack_1be" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_1be" & identifier)) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f1c)" ( (binary_expression "pcStack_1d8 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar5,unaff_s3,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);" (call_expression "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d9c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d9c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d9c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d9c)" ( (binary_expression "pcStack_1d8 + -0x7d9c" identifier + number_literal) ))))) )) (argument_list "(iVar5,uVar4,piVar24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);" (assignment_expression "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1d8 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7e8c)" ( (binary_expression "pcStack_1d8 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar9,piVar20,uStack_12c)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" identifier = number_literal) ;) (expression_statement "piStack_1dc = &iStack_1cc;" (assignment_expression "piStack_1dc = &iStack_1cc" identifier = (pointer_expression "&iStack_1cc" & identifier)) ;) (expression_statement "uStack_1e0 = uStack_12c;" (assignment_expression "uStack_1e0 = uStack_12c" identifier = identifier) ;) (expression_statement "uStack_1e4 = (uint)puStack_130 & 0xff;" (assignment_expression "uStack_1e4 = (uint)puStack_130 & 0xff" identifier = (binary_expression "(uint)puStack_130 & 0xff" (cast_expression "(uint)puStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" identifier = (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" ( (binary_expression "pcStack_1d8 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puStack_1e8 = unaff_s3;" (assignment_expression "puStack_1e8 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7f40)" * (cast_expression "(code **)(pcStack_1d8 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7f40)" ( (binary_expression "pcStack_1d8 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (if_statement "if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }" { (expression_statement "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d74))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7d74)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7d74)" * (cast_expression "(code **)(pcStack_1d8 + -0x7d74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7d74)" ( (binary_expression "pcStack_1d8 + -0x7d74" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ee8)" ( (binary_expression "pcStack_1d8 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" else (if_statement "if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }" { (expression_statement "iVar6 = iStack_1cc;" (assignment_expression "iVar6 = iStack_1cc" identifier = identifier) ;) (if_statement "if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }" if (parenthesized_expression "(iStack_1cc - 0x14U < 2)" ( (binary_expression "iStack_1cc - 0x14U < 2" (binary_expression "iStack_1cc - 0x14U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            iVar6 = 0;\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar6 = 0;\n        }" else (compound_statement "{\n          iVar6 = 0;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1d8 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1d8 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7ea4)" ( (binary_expression "pcStack_1d8 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) }) (else_clause "else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" else (compound_statement "{\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1128" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" else (compound_statement "{\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" identifier = (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" * (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" * (cast_expression "(code **)(pcVar25 + 0x2ae18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ae18)" ( (binary_expression "pcVar25 + 0x2ae18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" ( (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1158" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" * (cast_expression "(int *)(pcVar25 + 0x2ad6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2ad6c)" ( (binary_expression "pcVar25 + 0x2ad6c" identifier + number_literal) )))) + number_literal) ))) ;) }))) (if_statement "if (iStack_17c == *piVar22) {\n    return iVar6;\n  }" if (parenthesized_expression "(iStack_17c == *piVar22)" ( (binary_expression "iStack_17c == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1d8 + -0x7df4)" * (cast_expression "(code **)(pcStack_1d8 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1d8 + -0x7df4)" ( (binary_expression "pcStack_1d8 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = sg_ll_unmap_v2;" (assignment_expression "pcVar26 = sg_ll_unmap_v2" identifier = identifier) ;) (expression_statement "iVar21 = iStack_17c;" (assignment_expression "iVar21 = iStack_17c" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = piStack_1dc;" (assignment_expression "piVar13 = piStack_1dc" identifier = identifier) ;) (expression_statement "uVar11 = uStack_1e4;" (assignment_expression "uVar11 = uStack_1e4" identifier = identifier) ;) (expression_statement "puVar2 = puStack_1e8;" (assignment_expression "puVar2 = puStack_1e8" identifier = identifier) ;) (expression_statement "piVar19 = *(int **)(pcVar25 + 0x2ac2c);" (assignment_expression "piVar19 = *(int **)(pcVar25 + 0x2ac2c)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x2ac2c)" * (cast_expression "(int **)(pcVar25 + 0x2ac2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac2c)" ( (binary_expression "pcVar25 + 0x2ac2c" identifier + number_literal) ))))) ;) (expression_statement "uStack_208 = uVar4;" (assignment_expression "uStack_208 = uVar4" identifier = identifier) ;) (expression_statement "uStack_218 = uStack_12c;" (assignment_expression "uStack_218 = uStack_12c" identifier = identifier) ;) (expression_statement "aiStack_274[1] = 0x42000000;" (assignment_expression "aiStack_274[1] = 0x42000000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_224 = *piVar19;" (assignment_expression "iStack_224 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (if_statement "if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    aiStack_274[1] = 0x42010000;\n  }" { (expression_statement "aiStack_274[1] = 0x42010000;" (assignment_expression "aiStack_274[1] = 0x42010000" (subscript_expression "aiStack_274[1]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (param_6 < 1) {\n    param_6 = 0x3c;\n  }" if (parenthesized_expression "(param_6 < 1)" ( (binary_expression "param_6 < 1" identifier < number_literal) )) (compound_statement "{\n    param_6 = 0x3c;\n  }" { (expression_statement "param_6 = 0x3c;" (assignment_expression "param_6 = 0x3c" identifier = number_literal) ;) })) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2aa20);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2aa20)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) ))))) ;) (expression_statement "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);" (assignment_expression "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) = (call_expression "CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" identifier (argument_list "((short)uStack_1e4,aiStack_274[0]._2_2_)" ( (cast_expression "(short)uStack_1e4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "aiStack_274[0]._2_2_" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) . field_identifier) )))) ;) (expression_statement "sStack_268 = (ushort)(byte)uStack_1e4 << 8;" (assignment_expression "sStack_268 = (ushort)(byte)uStack_1e4 << 8" identifier = (binary_expression "(ushort)(byte)uStack_1e4 << 8" (cast_expression "(ushort)(byte)uStack_1e4" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(byte)uStack_1e4" ( (type_descriptor "byte" type_identifier) ) identifier)) << number_literal)) ;) (expression_statement "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);" (assignment_expression "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (subscript_expression "aiStack_274[2]" identifier [ number_literal ]) = (cast_expression "(int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" ( (binary_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff" (call_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8))" identifier (argument_list "(uVar8,(char)(uStack_1e4 >> 8))" ( identifier , (cast_expression "(char)(uStack_1e4 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uStack_1e4 >> 8)" ( (binary_expression "uStack_1e4 >> 8" identifier >> number_literal) ))) ))) & number_literal) )))) ;) (expression_statement "iStack_220 = iVar5;" (assignment_expression "iStack_220 = iVar5" identifier = identifier) ;) (expression_statement "iStack_21c = iVar6;" (assignment_expression "iStack_21c = iVar6" identifier = identifier) ;) (expression_statement "puStack_214 = unaff_s3;" (assignment_expression "puStack_214 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_210 = piVar20;" (assignment_expression "piStack_210 = piVar20" identifier = identifier) ;) (expression_statement "piStack_20c = piVar22;" (assignment_expression "piStack_20c = piVar22" identifier = identifier) ;) (expression_statement "iStack_204 = iVar9;" (assignment_expression "iStack_204 = iVar9" identifier = identifier) ;) (expression_statement "puStack_200 = puVar16;" (assignment_expression "puStack_200 = puVar16" identifier = identifier) ;) (expression_statement "pcStack_1fc = pcVar26;" (assignment_expression "pcStack_1fc = pcVar26" identifier = identifier) ;) (expression_statement "iStack_1f8 = iVar21;" (assignment_expression "iStack_1f8 = iVar21" identifier = identifier) ;) (if_statement "if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" if (parenthesized_expression "(piStack_1dc != (int *)0x0)" ( (binary_expression "piStack_1dc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1a50" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "iVar5 = *(int *)(pcVar25 + 0x2aa1c);" (assignment_expression "iVar5 = *(int *)(pcVar25 + 0x2aa1c)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x2aa1c)" * (cast_expression "(int *)(pcVar25 + 0x2aa1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa1c)" ( (binary_expression "pcVar25 + 0x2aa1c" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = aiStack_274 + 1;" (assignment_expression "piVar24 = aiStack_274 + 1" identifier = (binary_expression "aiStack_274 + 1" identifier + number_literal)) ;) (do_statement "do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);" do (compound_statement "{\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    }" { (expression_statement "piVar20 = (int *)((int)piVar24 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar24 + 1)" identifier = (cast_expression "(int *)((int)piVar24 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 1)" ( (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" ( (binary_expression "iVar5 + 0x1f1c" identifier + number_literal) , (pointer_expression "*(undefined1 *)piVar24" * (cast_expression "(undefined1 *)piVar24" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "piVar24 = piVar20;" (assignment_expression "piVar24 = piVar20" identifier = identifier) ;) }) while (parenthesized_expression "(&uStack_266 != piVar20)" ( (binary_expression "&uStack_266 != piVar20" (pointer_expression "&uStack_266" & identifier) != identifier) )) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x990)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x990" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" if (parenthesized_expression "(1 < (int)piVar13)" ( (binary_expression "1 < (int)piVar13" number_literal < (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" { (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (if_statement "if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;" if (parenthesized_expression "((puVar2 == (undefined *)0x0) || (uVar11 == 0))" ( (binary_expression "(puVar2 == (undefined *)0x0) || (uVar11 == 0)" (parenthesized_expression "(puVar2 == (undefined *)0x0)" ( (binary_expression "puVar2 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00029ecc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x13cc" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);" (call_expression "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa7c)" * (cast_expression "(code **)(pcVar25 + 0x2aa7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa7c)" ( (binary_expression "pcVar25 + 0x2aa7c" identifier + number_literal) ))))) )) (argument_list "(puVar2,uVar11,0xffffffff)" ( identifier , identifier , number_literal ))) ;) })) })) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" * (cast_expression "(code **)(pcVar25 + 0x2ac34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac34)" ( (binary_expression "pcVar25 + 0x2ac34" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00029ecc:\n  iVar5 = (*pcVar26)();" statement_identifier : (expression_statement "iVar5 = (*pcVar26)();" (assignment_expression "iVar5 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;)) (if_statement "if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }" { (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" * (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" * (cast_expression "(code **)(pcVar25 + 0x2aacc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aacc)" ( (binary_expression "pcVar25 + 0x2aacc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" ( (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1974" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" * (cast_expression "(int *)(pcVar25 + 0x2aa20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x2aa20)" ( (binary_expression "pcVar25 + 0x2aa20" identifier + number_literal) )))) + number_literal) , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" else (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);" (call_expression "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa40))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aa40)" * (pointer_expression "*(code **)(pcVar25 + 0x2aa40)" * (cast_expression "(code **)(pcVar25 + 0x2aa40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aa40)" ( (binary_expression "pcVar25 + 0x2aa40" identifier + number_literal) ))))) )) (argument_list "(iVar5,aiStack_274 + 1,10)" ( identifier , (binary_expression "aiStack_274 + 1" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);" (call_expression "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aad4))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aad4)" * (pointer_expression "*(code **)(pcVar25 + 0x2aad4)" * (cast_expression "(code **)(pcVar25 + 0x2aad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aad4)" ( (binary_expression "pcVar25 + 0x2aad4" identifier + number_literal) ))))) )) (argument_list "(iVar5,(int)&uStack_266 + 2,0x40)" ( identifier , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);" (call_expression "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac54))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac54)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac54)" * (cast_expression "(code **)(pcVar25 + 0x2ac54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac54)" ( (binary_expression "pcVar25 + 0x2ac54" identifier + number_literal) ))))) )) (argument_list "(iVar5,puVar2,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab64))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab64)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab64)" * (cast_expression "(code **)(pcVar25 + 0x2ab64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab64)" ( (binary_expression "pcVar25 + 0x2ab64" identifier + number_literal) ))))) )) (argument_list "(iVar5,iStack_1f8,param_6,piVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aab0))" ( (pointer_expression "**(code **)(pcVar25 + 0x2aab0)" * (pointer_expression "*(code **)(pcVar25 + 0x2aab0)" * (cast_expression "(code **)(pcVar25 + 0x2aab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2aab0)" ( (binary_expression "pcVar25 + 0x2aab0" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" ( identifier , (binary_expression "iVar12 + -0x10c0" identifier + number_literal) , identifier , number_literal , (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_266" & identifier)) + number_literal) , (binary_expression "uStack_1e0 & 0xff" identifier & number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ac7c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac7c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ac7c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ac7c)" * (cast_expression "(code **)(pcVar25 + 0x2ac7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ac7c)" ( (binary_expression "pcVar25 + 0x2ac7c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7)" identifier = (call_expression "(**(code **)(pcVar25 + 0x2ab08))(uVar7)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab08))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab08)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab08)" * (cast_expression "(code **)(pcVar25 + 0x2ab08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab08)" ( (binary_expression "pcVar25 + 0x2ab08" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" else (if_statement "if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" { (expression_statement "iVar6 = aiStack_274[0];" (assignment_expression "iVar6 = aiStack_274[0]" identifier = (subscript_expression "aiStack_274[0]" identifier [ number_literal ])) ;) (if_statement "if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "(aiStack_274[0] - 0x14U < 2)" ( (binary_expression "aiStack_274[0] - 0x14U < 2" (binary_expression "aiStack_274[0] - 0x14U" (subscript_expression "aiStack_274[0]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n      iVar6 = 0;\n    }" else (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) }))))) (expression_statement "(**(code **)(pcVar25 + 0x2ab4c))(iVar5);" (call_expression "(**(code **)(pcVar25 + 0x2ab4c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab4c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2ab4c)" * (pointer_expression "*(code **)(pcVar25 + 0x2ab4c)" * (cast_expression "(code **)(pcVar25 + 0x2ab4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2ab4c)" ( (binary_expression "pcVar25 + 0x2ab4c" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) }))) (if_statement "if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" if (parenthesized_expression "(iStack_224 != *piVar19)" ( (binary_expression "iStack_224 != *piVar19" identifier != (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" { (expression_statement "pcVar25 = *(code **)(pcVar25 + 0x2abfc);" (assignment_expression "pcVar25 = *(code **)(pcVar25 + 0x2abfc)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2abfc)" * (cast_expression "(code **)(pcVar25 + 0x2abfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2abfc)" ( (binary_expression "pcVar25 + 0x2abfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar5 = (**(code **)(pcVar25 + 0x2a938))();" (assignment_expression "iVar5 = (**(code **)(pcVar25 + 0x2a938))()" identifier = (call_expression "(**(code **)(pcVar25 + 0x2a938))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x2a938))" ( (pointer_expression "**(code **)(pcVar25 + 0x2a938)" * (pointer_expression "*(code **)(pcVar25 + 0x2a938)" * (cast_expression "(code **)(pcVar25 + 0x2a938)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2a938)" ( (binary_expression "pcVar25 + 0x2a938" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar5;" return identifier ;) })) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (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 ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 = 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 (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 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 = (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (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 ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 = (pointer_expression * 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT >= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) >= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) })) })) (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 *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (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 IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (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)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) , (binary_expression IDENT & LIT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)\n\n{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" (primitive_type "int") (function_declarator "sg_ll_read_buffer(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" (identifier "sg_ll_read_buffer") (parameter_list "(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,\n                     undefined4 param_5,int param_6,byte param_7,uint param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "byte param_2" (type_identifier "byte") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "byte param_7" (type_identifier "byte") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) () ")"))) (compound_statement "{\n  uint3 uVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  undefined1 uVar8;\n  undefined4 uVar7;\n  int iVar9;\n  byte bVar14;\n  undefined *puVar10;\n  char cVar15;\n  uint uVar11;\n  int iVar12;\n  int *piVar13;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  undefined *unaff_s3;\n  int *piVar19;\n  int *piVar20;\n  int iVar21;\n  int *piVar22;\n  undefined *puVar23;\n  undefined4 *unaff_s8;\n  int *piVar24;\n  code *pcVar25;\n  code *pcVar26;\n  int aiStack_274 [3];\n  short sStack_268;\n  undefined4 uStack_266;\n  int iStack_224;\n  int iStack_220;\n  int iStack_21c;\n  uint uStack_218;\n  undefined *puStack_214;\n  int *piStack_210;\n  int *piStack_20c;\n  uint uStack_208;\n  int iStack_204;\n  undefined4 *puStack_200;\n  code *pcStack_1fc;\n  int iStack_1f8;\n  undefined *puStack_1e8;\n  uint uStack_1e4;\n  uint uStack_1e0;\n  int *piStack_1dc;\n  code *pcStack_1d8;\n  int iStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  short sStack_1c0;\n  undefined4 uStack_1be;\n  int iStack_17c;\n  int iStack_178;\n  int iStack_174;\n  int *piStack_170;\n  undefined *puStack_16c;\n  int *piStack_168;\n  int iStack_164;\n  undefined *puStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  code *pcStack_154;\n  undefined *puStack_140;\n  uint uStack_13c;\n  int *piStack_138;\n  int *piStack_134;\n  undefined *puStack_130;\n  uint uStack_12c;\n  int iStack_124;\n  undefined4 uStack_120;\n  undefined2 uStack_11c;\n  undefined1 uStack_11a;\n  undefined1 uStack_119;\n  undefined1 uStack_118;\n  undefined1 uStack_117;\n  undefined4 uStack_116;\n  int iStack_d4;\n  int iStack_d0;\n  int iStack_cc;\n  uint uStack_c8;\n  undefined *puStack_c4;\n  undefined *puStack_c0;\n  undefined *puStack_bc;\n  undefined4 uStack_b8;\n  undefined4 uStack_b4;\n  undefined4 *puStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  uint local_94;\n  uint local_90;\n  int *local_8c;\n  int local_7c;\n  undefined4 local_78;\n  undefined2 local_74;\n  undefined1 local_72;\n  undefined1 local_71;\n  undefined1 local_70;\n  undefined1 local_6f;\n  undefined4 uStack_6e;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_00054a4c;\n  puVar2 = PTR_s_tatus_00054840;\n  local_78._1_1_ = param_2 & 0x1f;\n  local_78._0_1_ = 0x3c;\n  local_6f = 0;\n  local_78._2_1_ = (undefined1)param_3;\n  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);\n  local_74 = (undefined2)param_4;\n  local_72 = (undefined1)((uint)param_6 >> 0x10);\n  local_71 = (undefined1)((uint)param_6 >> 8);\n  local_70 = (undefined1)param_6;\n  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;\n  cVar15 = (char)PTR_s_tatus_00054840;\n  if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }\n  if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }\n  pcVar25 = sg_ll_write_buffer;\n  iVar12 = local_2c;\n  puVar23 = PTR___stack_chk_fail_00054a1c;\n  (*(code *)PTR___stack_chk_fail_00054a1c)();\n  piVar13 = local_8c;\n  uVar4 = local_94;\n  puVar10 = local_98;\n  puStack_130 = puVar23 + 0x33060;\n  uStack_120._1_1_ = bVar14 & 0x1f;\n  puStack_c0 = puVar3;\n  piVar19 = *(int **)(puVar23 + 0x2b29c);\n  uStack_b8 = param_5;\n  puStack_bc = puVar2;\n  uStack_120._0_1_ = 0x3b;\n  uStack_117 = 0;\n  uStack_120._2_1_ = (undefined1)param_3;\n  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);\n  uStack_11c = (undefined2)param_6;\n  uStack_11a = (undefined1)(local_94 >> 0x10);\n  uStack_119 = (undefined1)(local_94 >> 8);\n  uStack_118 = (undefined1)local_94;\n  iStack_d4 = *piVar19;\n  iVar21 = *(int *)(puVar23 + 0x2b090);\n  puVar16 = unaff_s8;\n  iStack_d0 = iVar5;\n  iStack_cc = iVar6;\n  uStack_c8 = param_8;\n  puStack_c4 = unaff_s3;\n  uStack_b4 = param_1;\n  puStack_b0 = unaff_s8;\n  pcStack_ac = pcVar25;\n  uVar8 = uStack_120._2_1_;\n  if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }\n  iVar5 = (*pcVar25)();\n  if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }\n  if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(puStack_130 + -0x7df4);\n  pcVar26 = sg_ll_write_buffer_v2;\n  iVar9 = iStack_d4;\n  (*pcVar25)();\n  piVar20 = piStack_134;\n  piVar24 = piStack_138;\n  uVar4 = uStack_13c;\n  pcStack_1d8 = pcVar25 + 0x32d3c;\n  piVar22 = *(int **)(pcVar25 + 0x2af78);\n  iStack_17c = *piVar22;\n  puStack_160 = puVar10;\n  piStack_170 = piVar13;\n  uStack_1c8 = 0x3b000000;\n  uStack_1c4 = 0;\n  sStack_1c0 = 0;\n  iStack_178 = iVar5;\n  iStack_174 = iVar6;\n  puStack_16c = unaff_s3;\n  piStack_168 = piVar19;\n  iStack_164 = iVar21;\n  iStack_15c = iVar12;\n  puStack_158 = puVar16;\n  pcStack_154 = pcVar26;\n  if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }\n  if (iStack_17c == *piVar22) {\n    return iVar6;\n  }\n  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);\n  pcVar26 = sg_ll_unmap_v2;\n  iVar21 = iStack_17c;\n  (*pcVar25)();\n  piVar13 = piStack_1dc;\n  uVar11 = uStack_1e4;\n  puVar2 = puStack_1e8;\n  piVar19 = *(int **)(pcVar25 + 0x2ac2c);\n  uStack_208 = uVar4;\n  uStack_218 = uStack_12c;\n  aiStack_274[1] = 0x42000000;\n  iStack_224 = *piVar19;\n  if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }\n  if (param_6 < 1) {\n    param_6 = 0x3c;\n  }\n  iVar12 = *(int *)(pcVar25 + 0x2aa20);\n  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);\n  sStack_268 = (ushort)(byte)uStack_1e4 << 8;\n  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);\n  iStack_220 = iVar5;\n  iStack_21c = iVar6;\n  puStack_214 = unaff_s3;\n  piStack_210 = piVar20;\n  piStack_20c = piVar22;\n  iStack_204 = iVar9;\n  puStack_200 = puVar16;\n  pcStack_1fc = pcVar26;\n  iStack_1f8 = iVar21;\n  if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }\n  pcVar26 = *(code **)(pcVar25 + 0x2ac34);\nLAB_00029ecc:\n  iVar5 = (*pcVar26)();\n  if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }\n  if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }\n  return iVar6;\n}" ({ "{") (declaration "uint3 uVar1;" (type_identifier "uint3") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined1 uVar8;" (type_identifier "undefined1") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined *unaff_s3;" (type_identifier "undefined") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 *unaff_s8;" (type_identifier "undefined4") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "int aiStack_274 [3];" (primitive_type "int") (array_declarator "aiStack_274 [3]" (identifier "aiStack_274") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "short sStack_268;" (sized_type_specifier "short" (short "short")) (identifier "sStack_268") (; ";")) (declaration "undefined4 uStack_266;" (type_identifier "undefined4") (identifier "uStack_266") (; ";")) (declaration "int iStack_224;" (primitive_type "int") (identifier "iStack_224") (; ";")) (declaration "int iStack_220;" (primitive_type "int") (identifier "iStack_220") (; ";")) (declaration "int iStack_21c;" (primitive_type "int") (identifier "iStack_21c") (; ";")) (declaration "uint uStack_218;" (type_identifier "uint") (identifier "uStack_218") (; ";")) (declaration "undefined *puStack_214;" (type_identifier "undefined") (pointer_declarator "*puStack_214" (* "*") (identifier "puStack_214")) (; ";")) (declaration "int *piStack_210;" (primitive_type "int") (pointer_declarator "*piStack_210" (* "*") (identifier "piStack_210")) (; ";")) (declaration "int *piStack_20c;" (primitive_type "int") (pointer_declarator "*piStack_20c" (* "*") (identifier "piStack_20c")) (; ";")) (declaration "uint uStack_208;" (type_identifier "uint") (identifier "uStack_208") (; ";")) (declaration "int iStack_204;" (primitive_type "int") (identifier "iStack_204") (; ";")) (declaration "undefined4 *puStack_200;" (type_identifier "undefined4") (pointer_declarator "*puStack_200" (* "*") (identifier "puStack_200")) (; ";")) (declaration "code *pcStack_1fc;" (type_identifier "code") (pointer_declarator "*pcStack_1fc" (* "*") (identifier "pcStack_1fc")) (; ";")) (declaration "int iStack_1f8;" (primitive_type "int") (identifier "iStack_1f8") (; ";")) (declaration "undefined *puStack_1e8;" (type_identifier "undefined") (pointer_declarator "*puStack_1e8" (* "*") (identifier "puStack_1e8")) (; ";")) (declaration "uint uStack_1e4;" (type_identifier "uint") (identifier "uStack_1e4") (; ";")) (declaration "uint uStack_1e0;" (type_identifier "uint") (identifier "uStack_1e0") (; ";")) (declaration "int *piStack_1dc;" (primitive_type "int") (pointer_declarator "*piStack_1dc" (* "*") (identifier "piStack_1dc")) (; ";")) (declaration "code *pcStack_1d8;" (type_identifier "code") (pointer_declarator "*pcStack_1d8" (* "*") (identifier "pcStack_1d8")) (; ";")) (declaration "int iStack_1cc;" (primitive_type "int") (identifier "iStack_1cc") (; ";")) (declaration "undefined4 uStack_1c8;" (type_identifier "undefined4") (identifier "uStack_1c8") (; ";")) (declaration "undefined4 uStack_1c4;" (type_identifier "undefined4") (identifier "uStack_1c4") (; ";")) (declaration "short sStack_1c0;" (sized_type_specifier "short" (short "short")) (identifier "sStack_1c0") (; ";")) (declaration "undefined4 uStack_1be;" (type_identifier "undefined4") (identifier "uStack_1be") (; ";")) (declaration "int iStack_17c;" (primitive_type "int") (identifier "iStack_17c") (; ";")) (declaration "int iStack_178;" (primitive_type "int") (identifier "iStack_178") (; ";")) (declaration "int iStack_174;" (primitive_type "int") (identifier "iStack_174") (; ";")) (declaration "int *piStack_170;" (primitive_type "int") (pointer_declarator "*piStack_170" (* "*") (identifier "piStack_170")) (; ";")) (declaration "undefined *puStack_16c;" (type_identifier "undefined") (pointer_declarator "*puStack_16c" (* "*") (identifier "puStack_16c")) (; ";")) (declaration "int *piStack_168;" (primitive_type "int") (pointer_declarator "*piStack_168" (* "*") (identifier "piStack_168")) (; ";")) (declaration "int iStack_164;" (primitive_type "int") (identifier "iStack_164") (; ";")) (declaration "undefined *puStack_160;" (type_identifier "undefined") (pointer_declarator "*puStack_160" (* "*") (identifier "puStack_160")) (; ";")) (declaration "int iStack_15c;" (primitive_type "int") (identifier "iStack_15c") (; ";")) (declaration "undefined4 *puStack_158;" (type_identifier "undefined4") (pointer_declarator "*puStack_158" (* "*") (identifier "puStack_158")) (; ";")) (declaration "code *pcStack_154;" (type_identifier "code") (pointer_declarator "*pcStack_154" (* "*") (identifier "pcStack_154")) (; ";")) (declaration "undefined *puStack_140;" (type_identifier "undefined") (pointer_declarator "*puStack_140" (* "*") (identifier "puStack_140")) (; ";")) (declaration "uint uStack_13c;" (type_identifier "uint") (identifier "uStack_13c") (; ";")) (declaration "int *piStack_138;" (primitive_type "int") (pointer_declarator "*piStack_138" (* "*") (identifier "piStack_138")) (; ";")) (declaration "int *piStack_134;" (primitive_type "int") (pointer_declarator "*piStack_134" (* "*") (identifier "piStack_134")) (; ";")) (declaration "undefined *puStack_130;" (type_identifier "undefined") (pointer_declarator "*puStack_130" (* "*") (identifier "puStack_130")) (; ";")) (declaration "uint uStack_12c;" (type_identifier "uint") (identifier "uStack_12c") (; ";")) (declaration "int iStack_124;" (primitive_type "int") (identifier "iStack_124") (; ";")) (declaration "undefined4 uStack_120;" (type_identifier "undefined4") (identifier "uStack_120") (; ";")) (declaration "undefined2 uStack_11c;" (type_identifier "undefined2") (identifier "uStack_11c") (; ";")) (declaration "undefined1 uStack_11a;" (type_identifier "undefined1") (identifier "uStack_11a") (; ";")) (declaration "undefined1 uStack_119;" (type_identifier "undefined1") (identifier "uStack_119") (; ";")) (declaration "undefined1 uStack_118;" (type_identifier "undefined1") (identifier "uStack_118") (; ";")) (declaration "undefined1 uStack_117;" (type_identifier "undefined1") (identifier "uStack_117") (; ";")) (declaration "undefined4 uStack_116;" (type_identifier "undefined4") (identifier "uStack_116") (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "uint uStack_c8;" (type_identifier "uint") (identifier "uStack_c8") (; ";")) (declaration "undefined *puStack_c4;" (type_identifier "undefined") (pointer_declarator "*puStack_c4" (* "*") (identifier "puStack_c4")) (; ";")) (declaration "undefined *puStack_c0;" (type_identifier "undefined") (pointer_declarator "*puStack_c0" (* "*") (identifier "puStack_c0")) (; ";")) (declaration "undefined *puStack_bc;" (type_identifier "undefined") (pointer_declarator "*puStack_bc" (* "*") (identifier "puStack_bc")) (; ";")) (declaration "undefined4 uStack_b8;" (type_identifier "undefined4") (identifier "uStack_b8") (; ";")) (declaration "undefined4 uStack_b4;" (type_identifier "undefined4") (identifier "uStack_b4") (; ";")) (declaration "undefined4 *puStack_b0;" (type_identifier "undefined4") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "code *pcStack_ac;" (type_identifier "code") (pointer_declarator "*pcStack_ac" (* "*") (identifier "pcStack_ac")) (; ";")) (declaration "undefined *local_98;" (type_identifier "undefined") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "uint local_94;" (type_identifier "uint") (identifier "local_94") (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "int *local_8c;" (primitive_type "int") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "undefined2 local_74;" (type_identifier "undefined2") (identifier "local_74") (; ";")) (declaration "undefined1 local_72;" (type_identifier "undefined1") (identifier "local_72") (; ";")) (declaration "undefined1 local_71;" (type_identifier "undefined1") (identifier "local_71") (; ";")) (declaration "undefined1 local_70;" (type_identifier "undefined1") (identifier "local_70") (; ";")) (declaration "undefined1 local_6f;" (type_identifier "undefined1") (identifier "local_6f") (; ";")) (declaration "undefined4 uStack_6e;" (type_identifier "undefined4") (identifier "uStack_6e") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_00054a4c;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00054a4c" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_00054a4c")) (; ";")) (expression_statement "puVar2 = PTR_s_tatus_00054840;" (assignment_expression "puVar2 = PTR_s_tatus_00054840" (identifier "puVar2") (= "=") (identifier "PTR_s_tatus_00054840")) (; ";")) (expression_statement "local_78._1_1_ = param_2 & 0x1f;" (assignment_expression "local_78._1_1_ = param_2 & 0x1f" (field_expression "local_78._1_1_" (identifier "local_78") (. ".") (field_identifier "_1_1_")) (= "=") (binary_expression "param_2 & 0x1f" (identifier "param_2") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "local_78._0_1_ = 0x3c;" (assignment_expression "local_78._0_1_ = 0x3c" (field_expression "local_78._0_1_" (identifier "local_78") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "local_6f = 0;" (assignment_expression "local_6f = 0" (identifier "local_6f") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78._2_1_ = (undefined1)param_3;" (assignment_expression "local_78._2_1_ = (undefined1)param_3" (field_expression "local_78._2_1_" (identifier "local_78") (. ".") (field_identifier "_2_1_")) (= "=") (cast_expression "(undefined1)param_3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10)" (field_expression "local_78._3_1_" (identifier "local_78") (. ".") (field_identifier "_3_1_")) (= "=") (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_4 >> 0x10)" (( "(") (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_74 = (undefined2)param_4;" (assignment_expression "local_74 = (undefined2)param_4" (identifier "local_74") (= "=") (cast_expression "(undefined2)param_4" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "local_72 = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "local_72 = (undefined1)((uint)param_6 >> 0x10)" (identifier "local_72") (= "=") (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_6 >> 0x10)" (( "(") (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_71 = (undefined1)((uint)param_6 >> 8);" (assignment_expression "local_71 = (undefined1)((uint)param_6 >> 8)" (identifier "local_71") (= "=") (call_expression "(undefined1)((uint)param_6 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_6 >> 8)" (( "(") (binary_expression "(uint)param_6 >> 8" (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_70 = (undefined1)param_6;" (assignment_expression "local_70 = (undefined1)param_6" (identifier "local_70") (= "=") (cast_expression "(undefined1)param_6" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_6"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00054a4c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00054a4c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00054a4c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00054a4c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00054a4c")))) (; ";")) (expression_statement "cVar15 = (char)PTR_s_tatus_00054840;" (assignment_expression "cVar15 = (char)PTR_s_tatus_00054840" (identifier "cVar15") (= "=") (cast_expression "(char)PTR_s_tatus_00054840" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "PTR_s_tatus_00054840"))) (; ";")) (if_statement "if (param_8 == 0) {\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }\n  else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 == 0) goto LAB_0002970c;\nLAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);\n    unaff_s3 = (undefined *)((int)&uStack_6e + 2);\n    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);\n    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);\n    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);\n    local_8c = &local_7c;\n    local_94 = (uint)param_7;\n    bVar14 = cVar15 + 0x5c;\n    local_90 = param_8;\n    local_98 = unaff_s3;\n    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }\n    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);\n  }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" (( "(") (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" (* "*") (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_construct_scsi_pt_obj_00054a54"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0002970c;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002970c;" (goto "goto") (statement_identifier "LAB_0002970c") (; ";"))) (labeled_statement "LAB_0002951c:\n    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" (statement_identifier "LAB_0002951c") (: ":") (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00054860)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00054860" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_cdb_00054860" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_cdb_00054860"))) () ")")) (argument_list "(iVar5,&local_78,10)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (number_literal "10") () ")"))) (; ";"))) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_6e + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_6e + 2)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined *)((int)&uStack_6e + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_6e + 2)" (( "(") (binary_expression "(int)&uStack_6e + 2" (cast_expression "(int)&uStack_6e" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_6e" (& "&") (identifier "uStack_6e"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000548f4)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000548f4" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_sense_000548f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_sense_000548f4"))) () ")")) (argument_list "(iVar5,unaff_s3,0x40)" (( "(") (identifier "iVar5") (, ",") (identifier "unaff_s3") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00054a80)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00054a80" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_data_in_00054a80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_data_in_00054a80"))) () ")")) (argument_list "(iVar5,param_5,param_6)" (( "(") (identifier "iVar5") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (expression_statement "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);" (assignment_expression "param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" (identifier "param_3") (= "=") (call_expression "(*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00054984)" (( "(") (pointer_expression "*(code *)PTR_do_scsi_pt_00054984" (* "*") (cast_expression "(code *)PTR_do_scsi_pt_00054984" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_scsi_pt_00054984"))) () ")")) (argument_list "(iVar5,param_1,0x3c,param_8)" (( "(") (identifier "iVar5") (, ",") (identifier "param_1") (, ",") (number_literal "0x3c") (, ",") (identifier "param_8") () ")")))) (; ";")) (expression_statement "local_8c = &local_7c;" (assignment_expression "local_8c = &local_7c" (identifier "local_8c") (= "=") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (; ";")) (expression_statement "local_94 = (uint)param_7;" (assignment_expression "local_94 = (uint)param_7" (identifier "local_94") (= "=") (cast_expression "(uint)param_7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_7"))) (; ";")) (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" (identifier "bVar14") (= "=") (binary_expression "cVar15 + 0x5c" (identifier "cVar15") (+ "+") (number_literal "0x5c"))) (; ";")) (expression_statement "local_90 = param_8;" (assignment_expression "local_90 = param_8" (identifier "local_90") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_98 = unaff_s3;" (assignment_expression "local_98 = unaff_s3" (identifier "local_98") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);" (assignment_expression "iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000548d0)" (( "(") (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000548d0" (* "*") (cast_expression "(code *)PTR_sg_cmds_process_resp_000548d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_cmds_process_resp_000548d0"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);\n      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);\n    }" ({ "{") (expression_statement "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);" (assignment_expression "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00054a9c)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00054a9c" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_os_err_00054a9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_os_err_00054a9c"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);" (assignment_expression "iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_00054928)(uVar7)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00054928)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_00054928" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_00054928" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_00054928"))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (else "else") (if_statement "if (iVar6 == -2) {\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == -2)" (( "(") (binary_expression "iVar6 == -2" (identifier "iVar6") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n      iVar6 = local_7c;\n      if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar6 = local_7c;" (assignment_expression "iVar6 = local_7c" (identifier "iVar6") (= "=") (identifier "local_7c")) (; ";")) (if_statement "if (local_7c - 0x14U < 2) {\n        iVar6 = 0;\n      }" (if "if") (parenthesized_expression "(local_7c - 0x14U < 2)" (( "(") (binary_expression "local_7c - 0x14U < 2" (binary_expression "local_7c - 0x14U" (identifier "local_7c") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (else "else") (if_statement "if (((int)param_8 < 3) || (iVar6 < 1)) {\n      iVar6 = 0;\n    }\n    else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (if "if") (parenthesized_expression "(((int)param_8 < 3) || (iVar6 < 1))" (( "(") (binary_expression "((int)param_8 < 3) || (iVar6 < 1)" (parenthesized_expression "((int)param_8 < 3)" (( "(") (binary_expression "(int)param_8 < 3" (cast_expression "(int)param_8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_8")) (< "<") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(iVar6 < 1)" (( "(") (binary_expression "iVar6 < 1" (identifier "iVar6") (< "<") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);\n      if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }\n    }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x16d4" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x16d4")) (, ",") (binary_expression "puVar2 + -0x11a4" (identifier "puVar2") (+ "+") (number_literal "-0x11a4")) () ")"))) (; ";")) (if_statement "if (param_8 == 3) {\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }\n      else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" (if "if") (parenthesized_expression "(param_8 == 3)" (( "(") (binary_expression "param_8 == 3" (identifier "param_8") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        param_8 = (uint)(iVar6 < 0x101);\n        if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }\n        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);\n        param_3 = 0xffffffff;\n        iVar12 = 0;\n        if (param_8 != 0) {\n          iVar12 = iVar6;\n        }\n        bVar14 = (byte)iVar12;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "param_8 = (uint)(iVar6 < 0x101);" (assignment_expression "param_8 = (uint)(iVar6 < 0x101)" (identifier "param_8") (= "=") (call_expression "(uint)(iVar6 < 0x101)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 < 0x101)" (( "(") (binary_expression "iVar6 < 0x101" (identifier "iVar6") (< "<") (number_literal "0x101")) () ")")))) (; ";")) (if_statement "if (param_8 == 0) {\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }\n        else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1710;\n        }" ({ "{") (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1710;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1710" (identifier "puVar10") (= "=") (binary_expression "PTR_s_tatus_00054840 + -0x1710" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1710"))) (; ";")) (} "}")) (else_clause "else {\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" (else "else") (compound_statement "{\n          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;\n        }" ({ "{") (expression_statement "puVar10 = PTR_s_tatus_00054840 + -0x1a5c;" (assignment_expression "puVar10 = PTR_s_tatus_00054840 + -0x1a5c" (identifier "puVar10") (= "=") (binary_expression "PTR_s_tatus_00054840 + -0x1a5c" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a5c"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_LAB_0005483c + 0x23c4,puVar10)" (( "(") (binary_expression "PTR_LAB_0005483c + 0x23c4" (identifier "PTR_LAB_0005483c") (+ "+") (number_literal "0x23c4")) (, ",") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "param_3 = 0xffffffff;" (assignment_expression "param_3 = 0xffffffff" (identifier "param_3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_8 != 0) {\n          iVar12 = iVar6;\n        }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar12 = iVar6;\n        }" ({ "{") (expression_statement "iVar12 = iVar6;" (assignment_expression "iVar12 = iVar6" (identifier "iVar12") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "bVar14 = (byte)iVar12;" (assignment_expression "bVar14 = (byte)iVar12" (identifier "bVar14") (= "=") (cast_expression "(byte)iVar12" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar12"))) (; ";")) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" (( "(") (pointer_expression "*(code *)PTR_hex2stderr_0005489c" (* "*") (cast_expression "(code *)PTR_hex2stderr_0005489c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stderr_0005489c"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);\n        param_3 = 0;\n        (*(code *)PTR_hex2stderr_0005489c)(param_5);\n        bVar14 = (byte)iVar6;\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x570)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x570" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x570")) () ")"))) (; ";")) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_hex2stderr_0005489c)(param_5);" (call_expression "(*(code *)PTR_hex2stderr_0005489c)(param_5)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005489c)" (( "(") (pointer_expression "*(code *)PTR_hex2stderr_0005489c" (* "*") (cast_expression "(code *)PTR_hex2stderr_0005489c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stderr_0005489c"))) () ")")) (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))) (; ";")) (expression_statement "bVar14 = (byte)iVar6;" (assignment_expression "bVar14 = (byte)iVar6" (identifier "bVar14") (= "=") (cast_expression "(byte)iVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar6"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005496c)" (( "(") (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005496c" (* "*") (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005496c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_destruct_scsi_pt_obj_0005496c"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" (else "else") (compound_statement "{\n    unaff_s8 = &uStack_6e;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);\n    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;\n    puVar16 = &local_78;\n    do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);\n    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();\n    if (iVar5 != 0) goto LAB_0002951c;\nLAB_0002970c:\n    bVar14 = cVar15 + 0x5c;\n    iVar6 = -1;\n    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);\n    param_6 = param_4;\n  }" ({ "{") (expression_statement "unaff_s8 = &uStack_6e;" (assignment_expression "unaff_s8 = &uStack_6e" (identifier "unaff_s8") (= "=") (pointer_expression "&uStack_6e" (& "&") (identifier "uStack_6e"))) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x1a50" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1a50")) (, ",") (binary_expression "PTR_s_tatus_00054840 + -0x11a4" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x11a4")) () ")"))) (; ";")) (expression_statement "unaff_s3 = PTR_LAB_0005483c + 0x1f1c;" (assignment_expression "unaff_s3 = PTR_LAB_0005483c + 0x1f1c" (identifier "unaff_s3") (= "=") (binary_expression "PTR_LAB_0005483c + 0x1f1c" (identifier "PTR_LAB_0005483c") (+ "+") (number_literal "0x1f1c"))) (; ";")) (expression_statement "puVar16 = &local_78;" (assignment_expression "puVar16 = &local_78" (identifier "puVar16") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (do_statement "do {\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    } while (unaff_s8 != puVar17);" (do "do") (compound_statement "{\n      puVar17 = (undefined4 *)((int)puVar16 + 1);\n      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);\n      puVar16 = puVar17;\n    }" ({ "{") (expression_statement "puVar17 = (undefined4 *)((int)puVar16 + 1);" (assignment_expression "puVar17 = (undefined4 *)((int)puVar16 + 1)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)((int)puVar16 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + 1)" (( "(") (binary_expression "(int)puVar16 + 1" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(unaff_s3,*(undefined1 *)puVar16)" (( "(") (identifier "unaff_s3") (, ",") (pointer_expression "*(undefined1 *)puVar16" (* "*") (cast_expression "(undefined1 *)puVar16" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar16"))) () ")"))) (; ";")) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s8 != puVar17)" (( "(") (binary_expression "unaff_s8 != puVar17" (identifier "unaff_s8") (!= "!=") (identifier "puVar17")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x990)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x990" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();" (assignment_expression "iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)()" (parenthesized_expression "(*(code *)PTR_construct_scsi_pt_obj_00054a54)" (( "(") (pointer_expression "*(code *)PTR_construct_scsi_pt_obj_00054a54" (* "*") (cast_expression "(code *)PTR_construct_scsi_pt_obj_00054a54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_construct_scsi_pt_obj_00054a54"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_0002951c;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002951c;" (goto "goto") (statement_identifier "LAB_0002951c") (; ";"))) (labeled_statement "LAB_0002970c:\n    bVar14 = cVar15 + 0x5c;" (statement_identifier "LAB_0002970c") (: ":") (expression_statement "bVar14 = cVar15 + 0x5c;" (assignment_expression "bVar14 = cVar15 + 0x5c" (identifier "bVar14") (= "=") (binary_expression "cVar15 + 0x5c" (identifier "cVar15") (+ "+") (number_literal "0x5c"))) (; ";"))) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);" (call_expression "(*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974)" (parenthesized_expression "(*(code *)PTR_pr2ws_000548ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000548ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000548ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000548ec"))) () ")")) (argument_list "(PTR_s_tatus_00054840 + -0x1974)" (( "(") (binary_expression "PTR_s_tatus_00054840 + -0x1974" (identifier "PTR_s_tatus_00054840") (+ "+") (number_literal "-0x1974")) () ")"))) (; ";")) (expression_statement "param_6 = param_4;" (assignment_expression "param_6 = param_4" (identifier "param_6") (= "=") (identifier "param_4")) (; ";")) (} "}")))) (if_statement "if (local_2c == *(int *)puVar3) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar3)" (( "(") (binary_expression "local_2c == *(int *)puVar3" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "pcVar25 = sg_ll_write_buffer;" (assignment_expression "pcVar25 = sg_ll_write_buffer" (identifier "pcVar25") (= "=") (identifier "sg_ll_write_buffer")) (; ";")) (expression_statement "iVar12 = local_2c;" (assignment_expression "iVar12 = local_2c" (identifier "iVar12") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar23 = PTR___stack_chk_fail_00054a1c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_00054a1c" (identifier "puVar23") (= "=") (identifier "PTR___stack_chk_fail_00054a1c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00054a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00054a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00054a1c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00054a1c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00054a1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00054a1c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar13 = local_8c;" (assignment_expression "piVar13 = local_8c" (identifier "piVar13") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "uVar4 = local_94;" (assignment_expression "uVar4 = local_94" (identifier "uVar4") (= "=") (identifier "local_94")) (; ";")) (expression_statement "puVar10 = local_98;" (assignment_expression "puVar10 = local_98" (identifier "puVar10") (= "=") (identifier "local_98")) (; ";")) (expression_statement "puStack_130 = puVar23 + 0x33060;" (assignment_expression "puStack_130 = puVar23 + 0x33060" (identifier "puStack_130") (= "=") (binary_expression "puVar23 + 0x33060" (identifier "puVar23") (+ "+") (number_literal "0x33060"))) (; ";")) (expression_statement "uStack_120._1_1_ = bVar14 & 0x1f;" (assignment_expression "uStack_120._1_1_ = bVar14 & 0x1f" (field_expression "uStack_120._1_1_" (identifier "uStack_120") (. ".") (field_identifier "_1_1_")) (= "=") (binary_expression "bVar14 & 0x1f" (identifier "bVar14") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "puStack_c0 = puVar3;" (assignment_expression "puStack_c0 = puVar3" (identifier "puStack_c0") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "piVar19 = *(int **)(puVar23 + 0x2b29c);" (assignment_expression "piVar19 = *(int **)(puVar23 + 0x2b29c)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(puVar23 + 0x2b29c)" (* "*") (cast_expression "(int **)(puVar23 + 0x2b29c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x2b29c)" (( "(") (binary_expression "puVar23 + 0x2b29c" (identifier "puVar23") (+ "+") (number_literal "0x2b29c")) () ")"))))) (; ";")) (expression_statement "uStack_b8 = param_5;" (assignment_expression "uStack_b8 = param_5" (identifier "uStack_b8") (= "=") (identifier "param_5")) (; ";")) (expression_statement "puStack_bc = puVar2;" (assignment_expression "puStack_bc = puVar2" (identifier "puStack_bc") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "uStack_120._0_1_ = 0x3b;" (assignment_expression "uStack_120._0_1_ = 0x3b" (field_expression "uStack_120._0_1_" (identifier "uStack_120") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0x3b")) (; ";")) (expression_statement "uStack_117 = 0;" (assignment_expression "uStack_117 = 0" (identifier "uStack_117") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_120._2_1_ = (undefined1)param_3;" (assignment_expression "uStack_120._2_1_ = (undefined1)param_3" (field_expression "uStack_120._2_1_" (identifier "uStack_120") (. ".") (field_identifier "_2_1_")) (= "=") (cast_expression "(undefined1)param_3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);" (assignment_expression "uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10)" (field_expression "uStack_120._3_1_" (identifier "uStack_120") (. ".") (field_identifier "_3_1_")) (= "=") (call_expression "(undefined1)((uint)param_6 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_6 >> 0x10)" (( "(") (binary_expression "(uint)param_6 >> 0x10" (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uStack_11c = (undefined2)param_6;" (assignment_expression "uStack_11c = (undefined2)param_6" (identifier "uStack_11c") (= "=") (cast_expression "(undefined2)param_6" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (identifier "param_6"))) (; ";")) (expression_statement "uStack_11a = (undefined1)(local_94 >> 0x10);" (assignment_expression "uStack_11a = (undefined1)(local_94 >> 0x10)" (identifier "uStack_11a") (= "=") (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 "uStack_119 = (undefined1)(local_94 >> 8);" (assignment_expression "uStack_119 = (undefined1)(local_94 >> 8)" (identifier "uStack_119") (= "=") (call_expression "(undefined1)(local_94 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(local_94 >> 8)" (( "(") (binary_expression "local_94 >> 8" (identifier "local_94") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uStack_118 = (undefined1)local_94;" (assignment_expression "uStack_118 = (undefined1)local_94" (identifier "uStack_118") (= "=") (cast_expression "(undefined1)local_94" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_94"))) (; ";")) (expression_statement "iStack_d4 = *piVar19;" (assignment_expression "iStack_d4 = *piVar19" (identifier "iStack_d4") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar23 + 0x2b090);" (assignment_expression "iVar21 = *(int *)(puVar23 + 0x2b090)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar23 + 0x2b090)" (* "*") (cast_expression "(int *)(puVar23 + 0x2b090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x2b090)" (( "(") (binary_expression "puVar23 + 0x2b090" (identifier "puVar23") (+ "+") (number_literal "0x2b090")) () ")"))))) (; ";")) (expression_statement "puVar16 = unaff_s8;" (assignment_expression "puVar16 = unaff_s8" (identifier "puVar16") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "iStack_d0 = iVar5;" (assignment_expression "iStack_d0 = iVar5" (identifier "iStack_d0") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iStack_cc = iVar6;" (assignment_expression "iStack_cc = iVar6" (identifier "iStack_cc") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "uStack_c8 = param_8;" (assignment_expression "uStack_c8 = param_8" (identifier "uStack_c8") (= "=") (identifier "param_8")) (; ";")) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" (identifier "puStack_c4") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "uStack_b4 = param_1;" (assignment_expression "uStack_b4 = param_1" (identifier "uStack_b4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_b0 = unaff_s8;" (assignment_expression "puStack_b0 = unaff_s8" (identifier "puStack_b0") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_ac = pcVar25;" (assignment_expression "pcStack_ac = pcVar25" (identifier "pcStack_ac") (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "uVar8 = uStack_120._2_1_;" (assignment_expression "uVar8 = uStack_120._2_1_" (identifier "uVar8") (= "=") (field_expression "uStack_120._2_1_" (identifier "uStack_120") (. ".") (field_identifier "_2_1_"))) (; ";")) (if_statement "if (local_8c == (int *)0x0) {\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }\n  else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" (if "if") (parenthesized_expression "(local_8c == (int *)0x0)" (( "(") (binary_expression "local_8c == (int *)0x0" (identifier "local_8c") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n  }" ({ "{") (labeled_statement "LAB_0002984c:\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (statement_identifier "LAB_0002984c") (: ":") (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7dbc)" (( "(") (binary_expression "puStack_130 + -0x7dbc" (identifier "puStack_130") (+ "+") (number_literal "-0x7dbc")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" (else "else") (compound_statement "{\n    puVar16 = &uStack_116;\n    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);\n    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);\n    puVar17 = &uStack_120;\n    do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);\n    if ((int)piVar13 < 2) goto LAB_0002984c;\n    pcVar25 = *(code **)(puStack_130 + -0x7dbc);\n    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }\n  }" ({ "{") (expression_statement "puVar16 = &uStack_116;" (assignment_expression "puVar16 = &uStack_116" (identifier "puVar16") (= "=") (pointer_expression "&uStack_116" (& "&") (identifier "uStack_116"))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);" (call_expression "(**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puVar23 + 0x2b13c))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x2b13c)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x2b13c)" (* "*") (cast_expression "(code **)(puVar23 + 0x2b13c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x2b13c)" (( "(") (binary_expression "puVar23 + 0x2b13c" (identifier "puVar23") (+ "+") (number_literal "0x2b13c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194)" (( "(") (binary_expression "*(int *)(puVar23 + 0x2b090) + -0x1a50" (pointer_expression "*(int *)(puVar23 + 0x2b090)" (* "*") (cast_expression "(int *)(puVar23 + 0x2b090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x2b090)" (( "(") (binary_expression "puVar23 + 0x2b090" (identifier "puVar23") (+ "+") (number_literal "0x2b090")) () ")")))) (+ "+") (number_literal "-0x1a50")) (, ",") (binary_expression "iVar21 + -0x1194" (identifier "iVar21") (+ "+") (number_literal "-0x1194")) () ")"))) (; ";")) (expression_statement "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd4)" (( "(") (binary_expression "puStack_130 + -0x7fd4" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x1f1c")) () ")")))) (; ";")) (expression_statement "puVar17 = &uStack_120;" (assignment_expression "puVar17 = &uStack_120" (identifier "puVar17") (= "=") (pointer_expression "&uStack_120" (& "&") (identifier "uStack_120"))) (; ";")) (do_statement "do {\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    } while (puVar16 != puVar18);" (do "do") (compound_statement "{\n      puVar18 = (undefined4 *)((int)puVar17 + 1);\n      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n      uVar8 = (undefined1)param_3;\n      puVar17 = puVar18;\n    }" ({ "{") (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)((int)puVar17 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + 1)" (( "(") (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" (( "(") (identifier "unaff_s3") (, ",") (pointer_expression "*(undefined1 *)puVar17" (* "*") (cast_expression "(undefined1 *)puVar17" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar17"))) () ")"))) (; ";")) (expression_statement "uVar8 = (undefined1)param_3;" (assignment_expression "uVar8 = (undefined1)param_3" (identifier "uVar8") (= "=") (cast_expression "(undefined1)param_3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" (identifier "puVar17") (= "=") (identifier "puVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != puVar18)" (( "(") (binary_expression "puVar16 != puVar18" (identifier "puVar16") (!= "!=") (identifier "puVar18")) () ")")) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x990)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (if_statement "if ((int)piVar13 < 2) goto LAB_0002984c;" (if "if") (parenthesized_expression "((int)piVar13 < 2)" (( "(") (binary_expression "(int)piVar13 < 2" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0002984c;" (goto "goto") (statement_identifier "LAB_0002984c") (; ";"))) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7dbc);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7dbc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7dbc)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7dbc)" (( "(") (binary_expression "puStack_130 + -0x7dbc" (identifier "puStack_130") (+ "+") (number_literal "-0x7dbc")) () ")"))))) (; ";")) (if_statement "if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" (if "if") (parenthesized_expression "((puVar10 != (undefined *)0x0) && (uVar4 != 0))" (( "(") (binary_expression "(puVar10 != (undefined *)0x0) && (uVar4 != 0)" (parenthesized_expression "(puVar10 != (undefined *)0x0)" (( "(") (binary_expression "puVar10 != (undefined *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);\n      if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }\n      goto LAB_0002984c;\n    }" ({ "{") (expression_statement "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);" (call_expression "(**(code **)(puStack_130 + -0x7f24))\n                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1184" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1184")) (, ",") (binary_expression "iVar21 + -0x1194" (identifier "iVar21") (+ "+") (number_literal "-0x1194")) () ")"))) (; ";")) (if_statement "if (piVar13 == (int *)0x2) {\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }\n      else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" (if "if") (parenthesized_expression "(piVar13 == (int *)0x2)" (( "(") (binary_expression "piVar13 == (int *)0x2" (identifier "piVar13") (== "==") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n        if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);\n        uVar8 = 0xff;\n        uVar11 = 0x100;\n        if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);\n      }" ({ "{") (if_statement "if (0x100 < (int)uVar4) {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }\n        else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" (if "if") (parenthesized_expression "(0x100 < (int)uVar4)" (( "(") (binary_expression "0x100 < (int)uVar4" (number_literal "0x100") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1710" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1710"))) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" (else "else") (compound_statement "{\n          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1a5c"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd4) + 0x23c4" (pointer_expression "*(int *)(puStack_130 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd4)" (( "(") (binary_expression "puStack_130 + -0x7fd4" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x23c4")) (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar11 = 0x100;" (assignment_expression "uVar11 = 0x100" (identifier "uVar11") (= "=") (number_literal "0x100")) (; ";")) (if_statement "if (0x100 >= (int)uVar4) {\n          uVar11 = uVar4;\n        }" (if "if") (parenthesized_expression "(0x100 >= (int)uVar4)" (( "(") (binary_expression "0x100 >= (int)uVar4" (number_literal "0x100") (>= ">=") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n          uVar11 = uVar4;\n        }" ({ "{") (expression_statement "uVar11 = uVar4;" (assignment_expression "uVar11 = uVar4" (identifier "uVar11") (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f74)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f74)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f74)" (( "(") (binary_expression "puStack_130 + -0x7f74" (identifier "puStack_130") (+ "+") (number_literal "-0x7f74")) () ")"))))) () ")")) (argument_list "(puVar10,uVar11)" (( "(") (identifier "puVar10") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" (else "else") (compound_statement "{\n        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);\n        uVar8 = 0;\n        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);\n      }" ({ "{") (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x570)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x570" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x570")) () ")"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f74))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f74)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f74)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f74)" (( "(") (binary_expression "puStack_130 + -0x7f74" (identifier "puStack_130") (+ "+") (number_literal "-0x7f74")) () ")"))))) () ")")) (argument_list "(puVar10,uVar4)" (( "(") (identifier "puVar10") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002984c;" (goto "goto") (statement_identifier "LAB_0002984c") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = (*pcVar25)();" (assignment_expression "iVar5 = (*pcVar25)()" (identifier "iVar5") (= "=") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }\n  else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    cVar15 = (char)iVar21 + 'l';\n    iVar6 = -1;\n    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);\n  }" ({ "{") (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" (identifier "cVar15") (= "=") (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar21")) (+ "+") (char_literal "'l'" (' "'") (character "l") (' "'")))) (; ";")) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f24)" (( "(") (binary_expression "puStack_130 + -0x7f24" (identifier "puStack_130") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_130 + -0x7fd0) + -0x1974)" (( "(") (binary_expression "*(int *)(puStack_130 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(puStack_130 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_130 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_130 + -0x7fd0)" (( "(") (binary_expression "puStack_130 + -0x7fd0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1974")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" (else "else") (compound_statement "{\n    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);\n    unaff_s3 = (undefined *)((int)&uStack_116 + 2);\n    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);\n    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);\n    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);\n    piStack_134 = &iStack_124;\n    uStack_13c = local_90 & 0xff;\n    param_6 = 0;\n    cVar15 = (char)iVar21 + 'l';\n    piStack_138 = piVar13;\n    puStack_140 = unaff_s3;\n    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(puStack_130 + -0x7ea4))(iVar5);\n  }" ({ "{") (expression_statement "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);" (call_expression "(**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7fb0))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7fb0)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7fb0)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7fb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7fb0)" (( "(") (binary_expression "puStack_130 + -0x7fb0" (identifier "puStack_130") (+ "+") (number_literal "-0x7fb0")) () ")"))))) () ")")) (argument_list "(iVar5,&uStack_120,10)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&uStack_120" (& "&") (identifier "uStack_120")) (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_116 + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_116 + 2)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined *)((int)&uStack_116 + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_116 + 2)" (( "(") (binary_expression "(int)&uStack_116 + 2" (cast_expression "(int)&uStack_116" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_116" (& "&") (identifier "uStack_116"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f1c))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f1c)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f1c)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f1c)" (( "(") (binary_expression "puStack_130 + -0x7f1c" (identifier "puStack_130") (+ "+") (number_literal "-0x7f1c")) () ")"))))) () ")")) (argument_list "(iVar5,unaff_s3,0x40)" (( "(") (identifier "iVar5") (, ",") (identifier "unaff_s3") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);" (call_expression "(**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d9c))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7d9c)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7d9c)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7d9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7d9c)" (( "(") (binary_expression "puStack_130 + -0x7d9c" (identifier "puStack_130") (+ "+") (number_literal "-0x7d9c")) () ")"))))) () ")")) (argument_list "(iVar5,puVar10,uVar4)" (( "(") (identifier "iVar5") (, ",") (identifier "puVar10") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);" (assignment_expression "uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7e8c))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7e8c)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7e8c)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7e8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7e8c)" (( "(") (binary_expression "puStack_130 + -0x7e8c" (identifier "puStack_130") (+ "+") (number_literal "-0x7e8c")) () ")"))))) () ")")) (argument_list "(iVar5,iVar12,0x3c,piVar13)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar12") (, ",") (number_literal "0x3c") (, ",") (identifier "piVar13") () ")")))) (; ";")) (expression_statement "piStack_134 = &iStack_124;" (assignment_expression "piStack_134 = &iStack_124" (identifier "piStack_134") (= "=") (pointer_expression "&iStack_124" (& "&") (identifier "iStack_124"))) (; ";")) (expression_statement "uStack_13c = local_90 & 0xff;" (assignment_expression "uStack_13c = local_90 & 0xff" (identifier "uStack_13c") (= "=") (binary_expression "local_90 & 0xff" (identifier "local_90") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" (identifier "param_6") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar15 = (char)iVar21 + 'l';" (assignment_expression "cVar15 = (char)iVar21 + 'l'" (identifier "cVar15") (= "=") (binary_expression "(char)iVar21 + 'l'" (cast_expression "(char)iVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar21")) (+ "+") (char_literal "'l'" (' "'") (character "l") (' "'")))) (; ";")) (expression_statement "piStack_138 = piVar13;" (assignment_expression "piStack_138 = piVar13" (identifier "piStack_138") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "puStack_140 = unaff_s3;" (assignment_expression "puStack_140 = unaff_s3" (identifier "puStack_140") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7f40))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7f40)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7f40)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7f40)" (( "(") (binary_expression "puStack_130 + -0x7f40" (identifier "puStack_130") (+ "+") (number_literal "-0x7f40")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);\n      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);\n    }" ({ "{") (expression_statement "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7d74))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7d74)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7d74)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7d74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7d74)" (( "(") (binary_expression "puStack_130 + -0x7d74" (identifier "puStack_130") (+ "+") (number_literal "-0x7d74")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puStack_130 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7ee8)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ee8)" (( "(") (binary_expression "puStack_130 + -0x7ee8" (identifier "puStack_130") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (else "else") (if_statement "if (iVar6 == -2) {\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == -2)" (( "(") (binary_expression "iVar6 == -2" (identifier "iVar6") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n      iVar6 = iStack_124;\n      if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar6 = iStack_124;" (assignment_expression "iVar6 = iStack_124" (identifier "iVar6") (= "=") (identifier "iStack_124")) (; ";")) (if_statement "if (iStack_124 - 0x14U < 2) {\n        iVar6 = 0;\n      }" (if "if") (parenthesized_expression "(iStack_124 - 0x14U < 2)" (( "(") (binary_expression "iStack_124 - 0x14U < 2" (binary_expression "iStack_124 - 0x14U" (identifier "iStack_124") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar6 = 0;\n    }" (else "else") (compound_statement "{\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (expression_statement "(**(code **)(puStack_130 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(puStack_130 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(puStack_130 + -0x7ea4))" (( "(") (pointer_expression "**(code **)(puStack_130 + -0x7ea4)" (* "*") (pointer_expression "*(code **)(puStack_130 + -0x7ea4)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7ea4)" (( "(") (binary_expression "puStack_130 + -0x7ea4" (identifier "puStack_130") (+ "+") (number_literal "-0x7ea4")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (if_statement "if (iStack_d4 == *piVar19) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(iStack_d4 == *piVar19)" (( "(") (binary_expression "iStack_d4 == *piVar19" (identifier "iStack_d4") (== "==") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(puStack_130 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(puStack_130 + -0x7df4)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puStack_130 + -0x7df4)" (* "*") (cast_expression "(code **)(puStack_130 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_130 + -0x7df4)" (( "(") (binary_expression "puStack_130 + -0x7df4" (identifier "puStack_130") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "pcVar26 = sg_ll_write_buffer_v2;" (assignment_expression "pcVar26 = sg_ll_write_buffer_v2" (identifier "pcVar26") (= "=") (identifier "sg_ll_write_buffer_v2")) (; ";")) (expression_statement "iVar9 = iStack_d4;" (assignment_expression "iVar9 = iStack_d4" (identifier "iVar9") (= "=") (identifier "iStack_d4")) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar20 = piStack_134;" (assignment_expression "piVar20 = piStack_134" (identifier "piVar20") (= "=") (identifier "piStack_134")) (; ";")) (expression_statement "piVar24 = piStack_138;" (assignment_expression "piVar24 = piStack_138" (identifier "piVar24") (= "=") (identifier "piStack_138")) (; ";")) (expression_statement "uVar4 = uStack_13c;" (assignment_expression "uVar4 = uStack_13c" (identifier "uVar4") (= "=") (identifier "uStack_13c")) (; ";")) (expression_statement "pcStack_1d8 = pcVar25 + 0x32d3c;" (assignment_expression "pcStack_1d8 = pcVar25 + 0x32d3c" (identifier "pcStack_1d8") (= "=") (binary_expression "pcVar25 + 0x32d3c" (identifier "pcVar25") (+ "+") (number_literal "0x32d3c"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar25 + 0x2af78);" (assignment_expression "piVar22 = *(int **)(pcVar25 + 0x2af78)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar25 + 0x2af78)" (* "*") (cast_expression "(int **)(pcVar25 + 0x2af78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2af78)" (( "(") (binary_expression "pcVar25 + 0x2af78" (identifier "pcVar25") (+ "+") (number_literal "0x2af78")) () ")"))))) (; ";")) (expression_statement "iStack_17c = *piVar22;" (assignment_expression "iStack_17c = *piVar22" (identifier "iStack_17c") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "puStack_160 = puVar10;" (assignment_expression "puStack_160 = puVar10" (identifier "puStack_160") (= "=") (identifier "puVar10")) (; ";")) (expression_statement "piStack_170 = piVar13;" (assignment_expression "piStack_170 = piVar13" (identifier "piStack_170") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "uStack_1c8 = 0x3b000000;" (assignment_expression "uStack_1c8 = 0x3b000000" (identifier "uStack_1c8") (= "=") (number_literal "0x3b000000")) (; ";")) (expression_statement "uStack_1c4 = 0;" (assignment_expression "uStack_1c4 = 0" (identifier "uStack_1c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "sStack_1c0 = 0;" (assignment_expression "sStack_1c0 = 0" (identifier "sStack_1c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_178 = iVar5;" (assignment_expression "iStack_178 = iVar5" (identifier "iStack_178") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iStack_174 = iVar6;" (assignment_expression "iStack_174 = iVar6" (identifier "iStack_174") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "puStack_16c = unaff_s3;" (assignment_expression "puStack_16c = unaff_s3" (identifier "puStack_16c") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "piStack_168 = piVar19;" (assignment_expression "piStack_168 = piVar19" (identifier "piStack_168") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "iStack_164 = iVar21;" (assignment_expression "iStack_164 = iVar21" (identifier "iStack_164") (= "=") (identifier "iVar21")) (; ";")) (expression_statement "iStack_15c = iVar12;" (assignment_expression "iStack_15c = iVar12" (identifier "iStack_15c") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "puStack_158 = puVar16;" (assignment_expression "puStack_158 = puVar16" (identifier "puStack_158") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "pcStack_154 = pcVar26;" (assignment_expression "pcStack_154 = pcVar26" (identifier "pcStack_154") (= "=") (identifier "pcVar26")) (; ";")) (if_statement "if (puStack_140 < (undefined *)0x1000000) {\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }\n  else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" (if "if") (parenthesized_expression "(puStack_140 < (undefined *)0x1000000)" (( "(") (binary_expression "puStack_140 < (undefined *)0x1000000" (identifier "puStack_140") (< "<") (cast_expression "(undefined *)0x1000000" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000000"))) () ")")) (compound_statement "{\n    uVar7 = 0;\n    uVar8 = 0;\n    if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }\n  }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piStack_138 < (int *)0x1000000) {\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }\n    else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" (if "if") (parenthesized_expression "(piStack_138 < (int *)0x1000000)" (( "(") (binary_expression "piStack_138 < (int *)0x1000000" (identifier "piStack_138") (< "<") (cast_expression "(int *)0x1000000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000000"))) () ")")) (compound_statement "{\n      sStack_1c0 = (ushort)(byte)piStack_138 << 8;\n      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));\n      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);\n      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);\n      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));\n      if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }\n      if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }\n      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();\n      if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }\n    }" ({ "{") (expression_statement "sStack_1c0 = (ushort)(byte)piStack_138 << 8;" (assignment_expression "sStack_1c0 = (ushort)(byte)piStack_138 << 8" (identifier "sStack_1c0") (= "=") (binary_expression "(ushort)(byte)piStack_138 << 8" (cast_expression "(ushort)(byte)piStack_138" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (cast_expression "(byte)piStack_138" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "piStack_138"))) (<< "<<") (number_literal "8"))) (; ";")) (expression_statement "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));" (assignment_expression "uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" (identifier "uStack_1c8") (= "=") (call_expression "CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" (identifier "CONCAT31") (argument_list "(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10))" (( "(") (call_expression "CONCAT21(0x3b00,(char)param_6)" (identifier "CONCAT21") (argument_list "(0x3b00,(char)param_6)" (( "(") (number_literal "0x3b00") (, ",") (cast_expression "(char)param_6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_6")) () ")"))) (, ",") (cast_expression "(char)((uint)puStack_140 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)puStack_140 >> 0x10)" (( "(") (binary_expression "(uint)puStack_140 >> 0x10" (cast_expression "(uint)puStack_140" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_140")) (>> ">>") (number_literal "0x10")) () ")"))) () ")")))) (; ";")) (expression_statement "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);" (assignment_expression "uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_)" (identifier "uVar1") (= "=") (call_expression "CONCAT12(cVar15,uStack_1c8._2_2_)" (identifier "CONCAT12") (argument_list "(cVar15,uStack_1c8._2_2_)" (( "(") (identifier "cVar15") (, ",") (field_expression "uStack_1c8._2_2_" (identifier "uStack_1c8") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);" (assignment_expression "uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff)" (identifier "uStack_1c8") (= "=") (call_expression "CONCAT13(0x3b,uVar1 & 0x1fffff)" (identifier "CONCAT13") (argument_list "(0x3b,uVar1 & 0x1fffff)" (( "(") (number_literal "0x3b") (, ",") (binary_expression "uVar1 & 0x1fffff" (identifier "uVar1") (& "&") (number_literal "0x1fffff")) () ")")))) (; ";")) (expression_statement "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8));" (assignment_expression "uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" (identifier "uStack_1c4") (= "=") (call_expression "CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" (identifier "CONCAT31") (argument_list "(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),\n                            (char)((uint)piStack_138 >> 8))" (( "(") (call_expression "CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" (identifier "CONCAT21") (argument_list "((short)puStack_140,(char)((uint)piStack_138 >> 0x10))" (( "(") (cast_expression "(short)puStack_140" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "puStack_140")) (, ",") (cast_expression "(char)((uint)piStack_138 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)piStack_138 >> 0x10)" (( "(") (binary_expression "(uint)piStack_138 >> 0x10" (cast_expression "(uint)piStack_138" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piStack_138")) (>> ">>") (number_literal "0x10")) () ")"))) () ")"))) (, ",") (cast_expression "(char)((uint)piStack_138 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)piStack_138 >> 8)" (( "(") (binary_expression "(uint)piStack_138 >> 8" (cast_expression "(uint)piStack_138" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piStack_138")) (>> ">>") (number_literal "8")) () ")"))) () ")")))) (; ";")) (if_statement "if (uStack_12c != 0) {\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" (if "if") (parenthesized_expression "(uStack_12c != 0)" (( "(") (binary_expression "uStack_12c != 0" (identifier "uStack_12c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar16 = &uStack_1be;\n        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);\n        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);\n        puVar17 = &uStack_1c8;\n        do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);\n        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }\n      }" ({ "{") (expression_statement "puVar16 = &uStack_1be;" (assignment_expression "puVar16 = &uStack_1be" (identifier "puVar16") (= "=") (pointer_expression "&uStack_1be" (& "&") (identifier "uStack_1be"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ae18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ae18)" (( "(") (binary_expression "pcVar25 + 0x2ae18" (identifier "pcVar25") (+ "+") (number_literal "0x2ae18")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x10fc" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2ad6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2ad6c)" (( "(") (binary_expression "pcVar25 + 0x2ad6c" (identifier "pcVar25") (+ "+") (number_literal "0x2ad6c")) () ")")))) (+ "+") (number_literal "-0x10fc")) () ")"))) (; ";")) (expression_statement "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);" (assignment_expression "unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c)" (( "(") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd4" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x1f1c")) () ")")))) (; ";")) (expression_statement "puVar17 = &uStack_1c8;" (assignment_expression "puVar17 = &uStack_1c8" (identifier "puVar17") (= "=") (pointer_expression "&uStack_1c8" (& "&") (identifier "uStack_1c8"))) (; ";")) (do_statement "do {\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        } while (puVar18 != puVar16);" (do "do") (compound_statement "{\n          puVar18 = (undefined4 *)((int)puVar17 + 1);\n          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);\n          uVar8 = (undefined1)uVar7;\n          puVar17 = puVar18;\n        }" ({ "{") (expression_statement "puVar18 = (undefined4 *)((int)puVar17 + 1);" (assignment_expression "puVar18 = (undefined4 *)((int)puVar17 + 1)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)((int)puVar17 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + 1)" (( "(") (binary_expression "(int)puVar17 + 1" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f24)" (( "(") (binary_expression "pcStack_1d8 + -0x7f24" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(unaff_s3,*(undefined1 *)puVar17)" (( "(") (identifier "unaff_s3") (, ",") (pointer_expression "*(undefined1 *)puVar17" (* "*") (cast_expression "(undefined1 *)puVar17" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar17"))) () ")"))) (; ";")) (expression_statement "uVar8 = (undefined1)uVar7;" (assignment_expression "uVar8 = (undefined1)uVar7" (identifier "uVar8") (= "=") (cast_expression "(undefined1)uVar7" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" (identifier "puVar17") (= "=") (identifier "puVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar18 != puVar16)" (( "(") (binary_expression "puVar18 != puVar16" (identifier "puVar18") (!= "!=") (identifier "puVar16")) () ")")) (; ";")) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f24)" (( "(") (binary_expression "pcStack_1d8 + -0x7f24" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990)" (( "(") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x990" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (if_statement "if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" (if "if") (parenthesized_expression "(((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0))" (( "(") (binary_expression "((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)" (parenthesized_expression "((1 < (int)uStack_12c) && (uVar4 != 0))" (( "(") (binary_expression "(1 < (int)uStack_12c) && (uVar4 != 0)" (parenthesized_expression "(1 < (int)uStack_12c)" (( "(") (binary_expression "1 < (int)uStack_12c" (number_literal "1") (< "<") (cast_expression "(int)uStack_12c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_12c"))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar24 != (int *)0x0)" (( "(") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);\n          uVar8 = 0xff;\n          piVar13 = (int *)0x100;\n          if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }\n          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);\n        }" ({ "{") (if_statement "if ((int *)0x100 < piVar24) {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }\n          else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" (if "if") (parenthesized_expression "((int *)0x100 < piVar24)" (( "(") (binary_expression "(int *)0x100 < piVar24" (cast_expression "(int *)0x100" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100")) (< "<") (identifier "piVar24")) () ")")) (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;\n          }" ({ "{") (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x116c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x116c"))) (; ";")) (} "}")) (else_clause "else {\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" (else "else") (compound_statement "{\n            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;\n          }" ({ "{") (expression_statement "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;" (assignment_expression "iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" (identifier "iVar5") (= "=") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1a5c"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f24)" (( "(") (binary_expression "pcStack_1d8 + -0x7f24" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5)" (( "(") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x10e4")) (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "uVar8 = 0xff;" (assignment_expression "uVar8 = 0xff" (identifier "uVar8") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "piVar13 = (int *)0x100;" (assignment_expression "piVar13 = (int *)0x100" (identifier "piVar13") (= "=") (cast_expression "(int *)0x100" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100"))) (; ";")) (if_statement "if ((int *)0x100 >= piVar24) {\n            piVar13 = piVar24;\n          }" (if "if") (parenthesized_expression "((int *)0x100 >= piVar24)" (( "(") (binary_expression "(int *)0x100 >= piVar24" (cast_expression "(int *)0x100" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100")) (>= ">=") (identifier "piVar24")) () ")")) (compound_statement "{\n            piVar13 = piVar24;\n          }" ({ "{") (expression_statement "piVar13 = piVar24;" (assignment_expression "piVar13 = piVar24" (identifier "piVar13") (= "=") (identifier "piVar24")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f74))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f74)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f74)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f74)" (( "(") (binary_expression "pcStack_1d8 + -0x7f74" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f74")) () ")"))))) () ")")) (argument_list "(uVar4,piVar13)" (( "(") (identifier "uVar4") (, ",") (identifier "piVar13") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((int)piVar20 < 1) {\n        piVar20 = (int *)0x3c;\n      }" (if "if") (parenthesized_expression "((int)piVar20 < 1)" (( "(") (binary_expression "(int)piVar20 < 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        piVar20 = (int *)0x3c;\n      }" ({ "{") (expression_statement "piVar20 = (int *)0x3c;" (assignment_expression "piVar20 = (int *)0x3c" (identifier "piVar20") (= "=") (cast_expression "(int *)0x3c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3c"))) (; ";")) (} "}"))) (expression_statement "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();" (assignment_expression "iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))()" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcStack_1d8 + -0x7dbc))()" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7dbc))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7dbc)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7dbc)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7dbc)" (( "(") (binary_expression "pcStack_1d8 + -0x7dbc" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7dbc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }\n      else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = -1;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;\n        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);\n      }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0xeb4"))) (; ";")) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f24)" (( "(") (binary_expression "pcStack_1d8 + -0x7f24" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974)" (( "(") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "-0x1974")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);\n        unaff_s3 = (undefined *)((int)&uStack_1be + 2);\n        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);\n        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);\n        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);\n        param_6 = 0;\n        piStack_1dc = &iStack_1cc;\n        uStack_1e0 = uStack_12c;\n        uStack_1e4 = (uint)puStack_130 & 0xff;\n        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;\n        puStack_1e8 = unaff_s3;\n        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);\n        if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }\n        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);" (call_expression "(**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7fb0))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7fb0)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7fb0)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7fb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fb0)" (( "(") (binary_expression "pcStack_1d8 + -0x7fb0" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fb0")) () ")"))))) () ")")) (argument_list "(iVar5,&uStack_1c8,10)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&uStack_1c8" (& "&") (identifier "uStack_1c8")) (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "unaff_s3 = (undefined *)((int)&uStack_1be + 2);" (assignment_expression "unaff_s3 = (undefined *)((int)&uStack_1be + 2)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined *)((int)&uStack_1be + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_1be + 2)" (( "(") (binary_expression "(int)&uStack_1be + 2" (cast_expression "(int)&uStack_1be" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_1be" (& "&") (identifier "uStack_1be"))) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);" (call_expression "(**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f1c))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f1c)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f1c)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f1c)" (( "(") (binary_expression "pcStack_1d8 + -0x7f1c" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f1c")) () ")"))))) () ")")) (argument_list "(iVar5,unaff_s3,0x40)" (( "(") (identifier "iVar5") (, ",") (identifier "unaff_s3") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);" (call_expression "(**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d9c))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7d9c)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7d9c)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7d9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7d9c)" (( "(") (binary_expression "pcStack_1d8 + -0x7d9c" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7d9c")) () ")"))))) () ")")) (argument_list "(iVar5,uVar4,piVar24)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar4") (, ",") (identifier "piVar24") () ")"))) (; ";")) (expression_statement "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);" (assignment_expression "uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7e8c))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7e8c)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7e8c)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7e8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7e8c)" (( "(") (binary_expression "pcStack_1d8 + -0x7e8c" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7e8c")) () ")"))))) () ")")) (argument_list "(iVar5,iVar9,piVar20,uStack_12c)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar9") (, ",") (identifier "piVar20") (, ",") (identifier "uStack_12c") () ")")))) (; ";")) (expression_statement "param_6 = 0;" (assignment_expression "param_6 = 0" (identifier "param_6") (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_1dc = &iStack_1cc;" (assignment_expression "piStack_1dc = &iStack_1cc" (identifier "piStack_1dc") (= "=") (pointer_expression "&iStack_1cc" (& "&") (identifier "iStack_1cc"))) (; ";")) (expression_statement "uStack_1e0 = uStack_12c;" (assignment_expression "uStack_1e0 = uStack_12c" (identifier "uStack_1e0") (= "=") (identifier "uStack_12c")) (; ";")) (expression_statement "uStack_1e4 = (uint)puStack_130 & 0xff;" (assignment_expression "uStack_1e4 = (uint)puStack_130 & 0xff" (identifier "uStack_1e4") (= "=") (binary_expression "(uint)puStack_130 & 0xff" (cast_expression "(uint)puStack_130" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_130")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;" (assignment_expression "iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04" (pointer_expression "*(int *)(pcStack_1d8 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_1d8 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7fd4)" (( "(") (binary_expression "pcStack_1d8 + -0x7fd4" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x3a04"))) (; ";")) (expression_statement "puStack_1e8 = unaff_s3;" (assignment_expression "puStack_1e8 = unaff_s3" (identifier "puStack_1e8") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1d8 + -0x7f40))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7f40))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7f40)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7f40)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7f40)" (( "(") (binary_expression "pcStack_1d8 + -0x7f40" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7f40")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }\n        else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);\n          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);\n        }" ({ "{") (expression_statement "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcStack_1d8 + -0x7d74))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7d74))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7d74)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7d74)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7d74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7d74)" (( "(") (binary_expression "pcStack_1d8 + -0x7d74" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7d74")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1d8 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7ee8)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7ee8)" (( "(") (binary_expression "pcStack_1d8 + -0x7ee8" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" (else "else") (if_statement "if (iVar6 == -2) {\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }\n        else {\n          iVar6 = 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == -2)" (( "(") (binary_expression "iVar6 == -2" (identifier "iVar6") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n          iVar6 = iStack_1cc;\n          if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar6 = iStack_1cc;" (assignment_expression "iVar6 = iStack_1cc" (identifier "iVar6") (= "=") (identifier "iStack_1cc")) (; ";")) (if_statement "if (iStack_1cc - 0x14U < 2) {\n            iVar6 = 0;\n          }" (if "if") (parenthesized_expression "(iStack_1cc - 0x14U < 2)" (( "(") (binary_expression "iStack_1cc - 0x14U < 2" (binary_expression "iStack_1cc - 0x14U" (identifier "iStack_1cc") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            iVar6 = 0;\n          }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar6 = 0;\n        }" (else "else") (compound_statement "{\n          iVar6 = 0;\n        }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (expression_statement "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);" (call_expression "(**(code **)(pcStack_1d8 + -0x7ea4))(iVar5)" (parenthesized_expression "(**(code **)(pcStack_1d8 + -0x7ea4))" (( "(") (pointer_expression "**(code **)(pcStack_1d8 + -0x7ea4)" (* "*") (pointer_expression "*(code **)(pcStack_1d8 + -0x7ea4)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7ea4)" (( "(") (binary_expression "pcStack_1d8 + -0x7ea4" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7ea4")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" (else "else") (compound_statement "{\n      iVar6 = -1;\n      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);\n    }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2ad6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2ad6c)" (( "(") (binary_expression "pcVar25 + 0x2ad6c" (identifier "pcVar25") (+ "+") (number_literal "0x2ad6c")) () ")")))) (+ "+") (number_literal "-0xeb4"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ae18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ae18)" (( "(") (binary_expression "pcVar25 + 0x2ae18" (identifier "pcVar25") (+ "+") (number_literal "0x2ae18")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1128)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1128" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2ad6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2ad6c)" (( "(") (binary_expression "pcVar25 + 0x2ad6c" (identifier "pcVar25") (+ "+") (number_literal "0x2ad6c")) () ")")))) (+ "+") (number_literal "-0x1128")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" (else "else") (compound_statement "{\n    iVar6 = -1;\n    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;\n    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);\n  }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (identifier "iVar12") (= "=") (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0xeb4" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2ad6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2ad6c)" (( "(") (binary_expression "pcVar25 + 0x2ad6c" (identifier "pcVar25") (+ "+") (number_literal "0x2ad6c")) () ")")))) (+ "+") (number_literal "-0xeb4"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);" (call_expression "(**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ae18))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ae18)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ae18)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ae18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ae18)" (( "(") (binary_expression "pcVar25 + 0x2ae18" (identifier "pcVar25") (+ "+") (number_literal "0x2ae18")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2ad6c) + -0x1158)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2ad6c) + -0x1158" (pointer_expression "*(int *)(pcVar25 + 0x2ad6c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2ad6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2ad6c)" (( "(") (binary_expression "pcVar25 + 0x2ad6c" (identifier "pcVar25") (+ "+") (number_literal "0x2ad6c")) () ")")))) (+ "+") (number_literal "-0x1158")) () ")"))) (; ";")) (} "}")))) (if_statement "if (iStack_17c == *piVar22) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(iStack_17c == *piVar22)" (( "(") (binary_expression "iStack_17c == *piVar22" (identifier "iStack_17c") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);" (assignment_expression "pcVar25 = *(code **)(pcStack_1d8 + -0x7df4)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcStack_1d8 + -0x7df4)" (* "*") (cast_expression "(code **)(pcStack_1d8 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1d8 + -0x7df4)" (( "(") (binary_expression "pcStack_1d8 + -0x7df4" (identifier "pcStack_1d8") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "pcVar26 = sg_ll_unmap_v2;" (assignment_expression "pcVar26 = sg_ll_unmap_v2" (identifier "pcVar26") (= "=") (identifier "sg_ll_unmap_v2")) (; ";")) (expression_statement "iVar21 = iStack_17c;" (assignment_expression "iVar21 = iStack_17c" (identifier "iVar21") (= "=") (identifier "iStack_17c")) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar13 = piStack_1dc;" (assignment_expression "piVar13 = piStack_1dc" (identifier "piVar13") (= "=") (identifier "piStack_1dc")) (; ";")) (expression_statement "uVar11 = uStack_1e4;" (assignment_expression "uVar11 = uStack_1e4" (identifier "uVar11") (= "=") (identifier "uStack_1e4")) (; ";")) (expression_statement "puVar2 = puStack_1e8;" (assignment_expression "puVar2 = puStack_1e8" (identifier "puVar2") (= "=") (identifier "puStack_1e8")) (; ";")) (expression_statement "piVar19 = *(int **)(pcVar25 + 0x2ac2c);" (assignment_expression "piVar19 = *(int **)(pcVar25 + 0x2ac2c)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(pcVar25 + 0x2ac2c)" (* "*") (cast_expression "(int **)(pcVar25 + 0x2ac2c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ac2c)" (( "(") (binary_expression "pcVar25 + 0x2ac2c" (identifier "pcVar25") (+ "+") (number_literal "0x2ac2c")) () ")"))))) (; ";")) (expression_statement "uStack_208 = uVar4;" (assignment_expression "uStack_208 = uVar4" (identifier "uStack_208") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uStack_218 = uStack_12c;" (assignment_expression "uStack_218 = uStack_12c" (identifier "uStack_218") (= "=") (identifier "uStack_12c")) (; ";")) (expression_statement "aiStack_274[1] = 0x42000000;" (assignment_expression "aiStack_274[1] = 0x42000000" (subscript_expression "aiStack_274[1]" (identifier "aiStack_274") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x42000000")) (; ";")) (expression_statement "iStack_224 = *piVar19;" (assignment_expression "iStack_224 = *piVar19" (identifier "iStack_224") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (if_statement "if (iVar12 != 0) {\n    aiStack_274[1] = 0x42010000;\n  }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    aiStack_274[1] = 0x42010000;\n  }" ({ "{") (expression_statement "aiStack_274[1] = 0x42010000;" (assignment_expression "aiStack_274[1] = 0x42010000" (subscript_expression "aiStack_274[1]" (identifier "aiStack_274") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x42010000")) (; ";")) (} "}"))) (if_statement "if (param_6 < 1) {\n    param_6 = 0x3c;\n  }" (if "if") (parenthesized_expression "(param_6 < 1)" (( "(") (binary_expression "param_6 < 1" (identifier "param_6") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    param_6 = 0x3c;\n  }" ({ "{") (expression_statement "param_6 = 0x3c;" (assignment_expression "param_6 = 0x3c" (identifier "param_6") (= "=") (number_literal "0x3c")) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x2aa20);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x2aa20)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa20)" (( "(") (binary_expression "pcVar25 + 0x2aa20" (identifier "pcVar25") (+ "+") (number_literal "0x2aa20")) () ")"))))) (; ";")) (expression_statement "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);" (assignment_expression "aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" (subscript_expression "aiStack_274[0]" (identifier "aiStack_274") ([ "[") (number_literal "0") (] "]")) (= "=") (call_expression "CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_)" (identifier "CONCAT22") (argument_list "((short)uStack_1e4,aiStack_274[0]._2_2_)" (( "(") (cast_expression "(short)uStack_1e4" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uStack_1e4")) (, ",") (field_expression "aiStack_274[0]._2_2_" (subscript_expression "aiStack_274[0]" (identifier "aiStack_274") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "sStack_268 = (ushort)(byte)uStack_1e4 << 8;" (assignment_expression "sStack_268 = (ushort)(byte)uStack_1e4 << 8" (identifier "sStack_268") (= "=") (binary_expression "(ushort)(byte)uStack_1e4 << 8" (cast_expression "(ushort)(byte)uStack_1e4" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (cast_expression "(byte)uStack_1e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_1e4"))) (<< "<<") (number_literal "8"))) (; ";")) (expression_statement "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);" (assignment_expression "aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (subscript_expression "aiStack_274[2]" (identifier "aiStack_274") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff)" (( "(") (binary_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff" (call_expression "CONCAT11(uVar8,(char)(uStack_1e4 >> 8))" (identifier "CONCAT11") (argument_list "(uVar8,(char)(uStack_1e4 >> 8))" (( "(") (identifier "uVar8") (, ",") (cast_expression "(char)(uStack_1e4 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uStack_1e4 >> 8)" (( "(") (binary_expression "uStack_1e4 >> 8" (identifier "uStack_1e4") (>> ">>") (number_literal "8")) () ")"))) () ")"))) (& "&") (number_literal "0x1fff")) () ")")))) (; ";")) (expression_statement "iStack_220 = iVar5;" (assignment_expression "iStack_220 = iVar5" (identifier "iStack_220") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iStack_21c = iVar6;" (assignment_expression "iStack_21c = iVar6" (identifier "iStack_21c") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "puStack_214 = unaff_s3;" (assignment_expression "puStack_214 = unaff_s3" (identifier "puStack_214") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "piStack_210 = piVar20;" (assignment_expression "piStack_210 = piVar20" (identifier "piStack_210") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "piStack_20c = piVar22;" (assignment_expression "piStack_20c = piVar22" (identifier "piStack_20c") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "iStack_204 = iVar9;" (assignment_expression "iStack_204 = iVar9" (identifier "iStack_204") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "puStack_200 = puVar16;" (assignment_expression "puStack_200 = puVar16" (identifier "puStack_200") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "pcStack_1fc = pcVar26;" (assignment_expression "pcStack_1fc = pcVar26" (identifier "pcStack_1fc") (= "=") (identifier "pcVar26")) (; ";")) (expression_statement "iStack_1f8 = iVar21;" (assignment_expression "iStack_1f8 = iVar21" (identifier "iStack_1f8") (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (piStack_1dc != (int *)0x0) {\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" (if "if") (parenthesized_expression "(piStack_1dc != (int *)0x0)" (( "(") (binary_expression "piStack_1dc != (int *)0x0" (identifier "piStack_1dc") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);\n    iVar5 = *(int *)(pcVar25 + 0x2aa1c);\n    piVar24 = aiStack_274 + 1;\n    do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);\n    if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aacc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aacc)" (( "(") (binary_expression "pcVar25 + 0x2aacc" (identifier "pcVar25") (+ "+") (number_literal "0x2aacc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1a50" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa20)" (( "(") (binary_expression "pcVar25 + 0x2aa20" (identifier "pcVar25") (+ "+") (number_literal "0x2aa20")) () ")")))) (+ "+") (number_literal "-0x1a50")) (, ",") (binary_expression "iVar12 + -0x10c0" (identifier "iVar12") (+ "+") (number_literal "-0x10c0")) () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar25 + 0x2aa1c);" (assignment_expression "iVar5 = *(int *)(pcVar25 + 0x2aa1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar25 + 0x2aa1c)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa1c)" (( "(") (binary_expression "pcVar25 + 0x2aa1c" (identifier "pcVar25") (+ "+") (number_literal "0x2aa1c")) () ")"))))) (; ";")) (expression_statement "piVar24 = aiStack_274 + 1;" (assignment_expression "piVar24 = aiStack_274 + 1" (identifier "piVar24") (= "=") (binary_expression "aiStack_274 + 1" (identifier "aiStack_274") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    } while (&uStack_266 != piVar20);" (do "do") (compound_statement "{\n      piVar20 = (int *)((int)piVar24 + 1);\n      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);\n      piVar24 = piVar20;\n    }" ({ "{") (expression_statement "piVar20 = (int *)((int)piVar24 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar24 + 1)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)piVar24 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar24 + 1)" (( "(") (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aacc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aacc)" (( "(") (binary_expression "pcVar25 + 0x2aacc" (identifier "pcVar25") (+ "+") (number_literal "0x2aacc")) () ")"))))) () ")")) (argument_list "(iVar5 + 0x1f1c,*(undefined1 *)piVar24)" (( "(") (binary_expression "iVar5 + 0x1f1c" (identifier "iVar5") (+ "+") (number_literal "0x1f1c")) (, ",") (pointer_expression "*(undefined1 *)piVar24" (* "*") (cast_expression "(undefined1 *)piVar24" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar24"))) () ")"))) (; ";")) (expression_statement "piVar24 = piVar20;" (assignment_expression "piVar24 = piVar20" (identifier "piVar24") (= "=") (identifier "piVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&uStack_266 != piVar20)" (( "(") (binary_expression "&uStack_266 != piVar20" (pointer_expression "&uStack_266" (& "&") (identifier "uStack_266")) (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aacc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aacc)" (( "(") (binary_expression "pcVar25 + 0x2aacc" (identifier "pcVar25") (+ "+") (number_literal "0x2aacc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x990)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x990" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa20)" (( "(") (binary_expression "pcVar25 + 0x2aa20" (identifier "pcVar25") (+ "+") (number_literal "0x2aa20")) () ")")))) (+ "+") (number_literal "-0x990")) () ")"))) (; ";")) (if_statement "if (1 < (int)piVar13) {\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" (if "if") (parenthesized_expression "(1 < (int)piVar13)" (( "(") (binary_expression "1 < (int)piVar13" (number_literal "1") (< "<") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")) (compound_statement "{\n      pcVar26 = *(code **)(pcVar25 + 0x2ac34);\n      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;\n      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);\n      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);\n    }" ({ "{") (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ac34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ac34)" (( "(") (binary_expression "pcVar25 + 0x2ac34" (identifier "pcVar25") (+ "+") (number_literal "0x2ac34")) () ")"))))) (; ";")) (if_statement "if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;" (if "if") (parenthesized_expression "((puVar2 == (undefined *)0x0) || (uVar11 == 0))" (( "(") (binary_expression "(puVar2 == (undefined *)0x0) || (uVar11 == 0)" (parenthesized_expression "(puVar2 == (undefined *)0x0)" (( "(") (binary_expression "puVar2 == (undefined *)0x0" (identifier "puVar2") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00029ecc;" (goto "goto") (statement_identifier "LAB_00029ecc") (; ";"))) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aacc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aacc)" (( "(") (binary_expression "pcVar25 + 0x2aacc" (identifier "pcVar25") (+ "+") (number_literal "0x2aacc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x13cc" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa20)" (( "(") (binary_expression "pcVar25 + 0x2aa20" (identifier "pcVar25") (+ "+") (number_literal "0x2aa20")) () ")")))) (+ "+") (number_literal "-0x13cc")) (, ",") (binary_expression "iVar12 + -0x10c0" (identifier "iVar12") (+ "+") (number_literal "-0x10c0")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);" (call_expression "(**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa7c))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aa7c)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aa7c)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aa7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa7c)" (( "(") (binary_expression "pcVar25 + 0x2aa7c" (identifier "pcVar25") (+ "+") (number_literal "0x2aa7c")) () ")"))))) () ")")) (argument_list "(puVar2,uVar11,0xffffffff)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar11") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2ac34);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2ac34)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(pcVar25 + 0x2ac34)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ac34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ac34)" (( "(") (binary_expression "pcVar25 + 0x2ac34" (identifier "pcVar25") (+ "+") (number_literal "0x2ac34")) () ")"))))) (; ";")) (labeled_statement "LAB_00029ecc:\n  iVar5 = (*pcVar26)();" (statement_identifier "LAB_00029ecc") (: ":") (expression_statement "iVar5 = (*pcVar26)();" (assignment_expression "iVar5 = (*pcVar26)()" (identifier "iVar5") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }\n  else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = -1;\n    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);\n  }" ({ "{") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);" (call_expression "(**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aacc))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aacc)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aacc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aacc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aacc)" (( "(") (binary_expression "pcVar25 + 0x2aacc" (identifier "pcVar25") (+ "+") (number_literal "0x2aacc")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0)" (( "(") (binary_expression "*(int *)(pcVar25 + 0x2aa20) + -0x1974" (pointer_expression "*(int *)(pcVar25 + 0x2aa20)" (* "*") (cast_expression "(int *)(pcVar25 + 0x2aa20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa20)" (( "(") (binary_expression "pcVar25 + 0x2aa20" (identifier "pcVar25") (+ "+") (number_literal "0x2aa20")) () ")")))) (+ "+") (number_literal "-0x1974")) (, ",") (binary_expression "iVar12 + -0x10c0" (identifier "iVar12") (+ "+") (number_literal "-0x10c0")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);\n    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);\n    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);\n    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);\n    iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);\n    if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }\n    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);" (call_expression "(**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aa40))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aa40)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aa40)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aa40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aa40)" (( "(") (binary_expression "pcVar25 + 0x2aa40" (identifier "pcVar25") (+ "+") (number_literal "0x2aa40")) () ")"))))) () ")")) (argument_list "(iVar5,aiStack_274 + 1,10)" (( "(") (identifier "iVar5") (, ",") (binary_expression "aiStack_274 + 1" (identifier "aiStack_274") (+ "+") (number_literal "1")) (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);" (call_expression "(**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aad4))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aad4)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aad4)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aad4)" (( "(") (binary_expression "pcVar25 + 0x2aad4" (identifier "pcVar25") (+ "+") (number_literal "0x2aad4")) () ")"))))) () ")")) (argument_list "(iVar5,(int)&uStack_266 + 2,0x40)" (( "(") (identifier "iVar5") (, ",") (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_266" (& "&") (identifier "uStack_266"))) (+ "+") (number_literal "2")) (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);" (call_expression "(**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac54))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ac54)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ac54)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ac54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ac54)" (( "(") (binary_expression "pcVar25 + 0x2ac54" (identifier "pcVar25") (+ "+") (number_literal "0x2ac54")) () ")"))))) () ")")) (argument_list "(iVar5,puVar2,uVar11)" (( "(") (identifier "iVar5") (, ",") (identifier "puVar2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab64))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ab64)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ab64)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ab64)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ab64)" (( "(") (binary_expression "pcVar25 + 0x2ab64" (identifier "pcVar25") (+ "+") (number_literal "0x2ab64")) () ")"))))) () ")")) (argument_list "(iVar5,iStack_1f8,param_6,piVar13)" (( "(") (identifier "iVar5") (, ",") (identifier "iStack_1f8") (, ",") (identifier "param_6") (, ",") (identifier "piVar13") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar25 + 0x2aab0))\n                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2aab0))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2aab0)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2aab0)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2aab0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2aab0)" (( "(") (binary_expression "pcVar25 + 0x2aab0" (identifier "pcVar25") (+ "+") (number_literal "0x2aab0")) () ")"))))) () ")")) (argument_list "(iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13\n                       ,aiStack_274)" (( "(") (identifier "iVar5") (, ",") (binary_expression "iVar12 + -0x10c0" (identifier "iVar12") (+ "+") (number_literal "-0x10c0")) (, ",") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (binary_expression "(int)&uStack_266 + 2" (cast_expression "(int)&uStack_266" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_266" (& "&") (identifier "uStack_266"))) (+ "+") (number_literal "2")) (, ",") (binary_expression "uStack_1e0 & 0xff" (identifier "uStack_1e0") (& "&") (number_literal "0xff")) (, ",") (identifier "piVar13") (, ",") (identifier "aiStack_274") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }\n    else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);\n      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);\n    }" ({ "{") (expression_statement "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);" (assignment_expression "uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(pcVar25 + 0x2ac7c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ac7c))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ac7c)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ac7c)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ac7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ac7c)" (( "(") (binary_expression "pcVar25 + 0x2ac7c" (identifier "pcVar25") (+ "+") (number_literal "0x2ac7c")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);" (assignment_expression "iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcVar25 + 0x2ab08))(uVar7)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab08))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ab08)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ab08)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ab08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ab08)" (( "(") (binary_expression "pcVar25 + 0x2ab08" (identifier "pcVar25") (+ "+") (number_literal "0x2ab08")) () ")"))))) () ")")) (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (else "else") (if_statement "if (iVar6 == -2) {\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }\n    else {\n      iVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == -2)" (( "(") (binary_expression "iVar6 == -2" (identifier "iVar6") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n      iVar6 = aiStack_274[0];\n      if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar6 = aiStack_274[0];" (assignment_expression "iVar6 = aiStack_274[0]" (identifier "iVar6") (= "=") (subscript_expression "aiStack_274[0]" (identifier "aiStack_274") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (aiStack_274[0] - 0x14U < 2) {\n        iVar6 = 0;\n      }" (if "if") (parenthesized_expression "(aiStack_274[0] - 0x14U < 2)" (( "(") (binary_expression "aiStack_274[0] - 0x14U < 2" (binary_expression "aiStack_274[0] - 0x14U" (subscript_expression "aiStack_274[0]" (identifier "aiStack_274") ([ "[") (number_literal "0") (] "]")) (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar6 = 0;\n      }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar6 = 0;\n    }" (else "else") (compound_statement "{\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (expression_statement "(**(code **)(pcVar25 + 0x2ab4c))(iVar5);" (call_expression "(**(code **)(pcVar25 + 0x2ab4c))(iVar5)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2ab4c))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2ab4c)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2ab4c)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2ab4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2ab4c)" (( "(") (binary_expression "pcVar25 + 0x2ab4c" (identifier "pcVar25") (+ "+") (number_literal "0x2ab4c")) () ")"))))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (if_statement "if (iStack_224 != *piVar19) {\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" (if "if") (parenthesized_expression "(iStack_224 != *piVar19)" (( "(") (binary_expression "iStack_224 != *piVar19" (identifier "iStack_224") (!= "!=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) () ")")) (compound_statement "{\n    pcVar25 = *(code **)(pcVar25 + 0x2abfc);\n    (*pcVar25)();\n    iVar5 = (**(code **)(pcVar25 + 0x2a938))();\n    return iVar5;\n  }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar25 + 0x2abfc);" (assignment_expression "pcVar25 = *(code **)(pcVar25 + 0x2abfc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar25 + 0x2abfc)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2abfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2abfc)" (( "(") (binary_expression "pcVar25 + 0x2abfc" (identifier "pcVar25") (+ "+") (number_literal "0x2abfc")) () ")"))))) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = (**(code **)(pcVar25 + 0x2a938))();" (assignment_expression "iVar5 = (**(code **)(pcVar25 + 0x2a938))()" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar25 + 0x2a938))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x2a938))" (( "(") (pointer_expression "**(code **)(pcVar25 + 0x2a938)" (* "*") (pointer_expression "*(code **)(pcVar25 + 0x2a938)" (* "*") (cast_expression "(code **)(pcVar25 + 0x2a938)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x2a938)" (( "(") (binary_expression "pcVar25 + 0x2a938" (identifier "pcVar25") (+ "+") (number_literal "0x2a938")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}"))) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))

int function_1(int sg_fd,int mode,int buffer_id,int buffer_offset,void *resp,int var_39,
                     type_1 noisy,int var_1)

{
  type_2 var_33;
  type_3 *var_7;
  type_3 *puVar3;
  type_4 var_21;
  int var_2;
  int var_4;
  type_5 uVar8;
  type_6 uVar7;
  int iVar9;
  type_7 var_14;
  type_3 *var_13;
  char var_3;
  type_4 var_46;
  int *var_22;
  int var_12;
  uint8_t *var_11;
  uint8_t *var_20;
  uint8_t *var_9;
  uint8_t *var_19;
  uint8_t *unaff_s3;
  int *piVar20;
  int *var_45;
  int var_18;
  int *piVar23;
  uint8_t *var_10;
  int *var_36;
  type_8 *var_26;
  type_8 *pcVar26;
  int var_44 [3];
  short sStack_268;
  type_6 uStack_266;
  int var_48;
  int iStack_220;
  int iStack_21c;
  type_4 uStack_218;
  uint8_t *puStack_214;
  int *piStack_210;
  int *piStack_20c;
  type_4 uStack_208;
  int iStack_204;
  uint8_t *puStack_200;
  type_8 *pcStack_1fc;
  int iStack_1f8;
  uint8_t *puStack_1e8;
  type_4 var_42;
  type_4 var_47;
  int *var_43;
  type_8 *var_35;
  int var_37;
  type_6 uStack_1c8;
  type_6 uStack_1c4;
  short sStack_1c0;
  uint8_t auStack_1be [2];
  uint8_t auStack_1bc [64];
  int var_38;
  int iStack_178;
  int iStack_174;
  int *piStack_170;
  uint8_t *puStack_16c;
  int *piStack_168;
  int iStack_164;
  uint8_t *puStack_160;
  int iStack_15c;
  uint8_t *puStack_158;
  type_8 *pcStack_154;
  uint8_t *var_27;
  type_4 uStack_13c;
  int *var_28;
  int *piStack_134;
  type_3 *var_17;
  type_4 var_34;
  int var_24;
  uint8_t uStack_120;
  type_7 bStack_11f;
  type_5 uStack_11e;
  type_5 uStack_11d;
  type_9 uStack_11c;
  type_5 uStack_11a;
  type_5 uStack_119;
  type_5 uStack_118;
  type_5 uStack_117;
  uint8_t auStack_116 [2];
  uint8_t auStack_114 [64];
  int var_25;
  int iStack_d0;
  int iStack_cc;
  type_4 uStack_c8;
  uint8_t *puStack_c4;
  type_3 *puStack_c0;
  type_3 *puStack_bc;
  void *pvStack_b8;
  int iStack_b4;
  uint8_t *puStack_b0;
  type_8 *pcStack_ac;
  uint8_t *local_98;
  type_4 var_15;
  type_4 var_23;
  int *var_16;
  int var_5;
  uint8_t rbuf_cdb [10];
  uint8_t auStack_6e [2];
  uint8_t sense_b [64];
  
  puVar3 = PTR___stack_chk_guard_00054a4c;
  var_7 = var_6;
  rbuf_cdb[1] = (type_7)mode & 0x1f;
  rbuf_cdb[0] = '<';
  rbuf_cdb[9] = '\0';
  rbuf_cdb[2] = (uint8_t)buffer_id;
  rbuf_cdb[3] = (uint8_t)((type_4)buffer_offset >> 0x10);
  rbuf_cdb._4_2_ = (type_9)buffer_offset;
  rbuf_cdb[6] = (uint8_t)((type_4)var_39 >> 0x10);
  rbuf_cdb[7] = (uint8_t)((type_4)var_39 >> 8);
  rbuf_cdb[8] = (uint8_t)var_39;
  var_12 = *(int *)PTR___stack_chk_guard_00054a4c;
  var_3 = (char)var_6;
  if (var_1 == 0) {
    var_2 = (*(type_8 *)PTR_construct_scsi_pt_obj_00054a54)();
    if (var_2 == 0) goto LAB_0002970c;
LAB_0002951c:
    (*(type_8 *)PTR_set_scsi_pt_cdb_00054860)(var_2,rbuf_cdb,10);
    unaff_s3 = sense_b;
    (*(type_8 *)PTR_set_scsi_pt_sense_000548f4)(var_2,unaff_s3,0x40);
    (*(type_8 *)PTR_set_scsi_pt_data_in_00054a80)(var_2,resp,var_39);
    buffer_id = (*(type_8 *)PTR_do_scsi_pt_00054984)(var_2,sg_fd,0x3c,var_1);
    var_16 = &var_5;
    var_15 = (type_4)noisy;
    var_14 = var_3 + 0x5c;
    var_23 = var_1;
    local_98 = unaff_s3;
    var_4 = (*(type_8 *)PTR_sg_cmds_process_resp_000548d0)(var_2);
    if (var_4 == -1) {
      uVar7 = (*(type_8 *)PTR_get_scsi_pt_os_err_00054a9c)(var_2);
      var_4 = (*(type_8 *)PTR_sg_convert_errno_00054928)(uVar7);
    }
    else if (var_4 == -2) {
      var_4 = var_5;
      if (var_5 - 0x14U < 2) {
        var_4 = 0;
      }
    }
    else if ((var_1 < 3) || (var_4 < 1)) {
      var_4 = 0;
    }
    else {
      (*(type_8 *)PTR_pr2ws_000548ec)(var_6 + -0x16d4,var_7 + -0x11a4);
      if (var_1 == 3) {
        var_1 = (int)(var_4 < 0x101);
        if (var_1 == 0) {
          var_13 = var_6 + -0x1710;
        }
        else {
          var_13 = var_6 + -0x1a5c;
        }
        (*(type_8 *)PTR_pr2ws_000548ec)(var_8 + 0x23c4,var_13);
        buffer_id = -1;
        var_18 = 0;
        if (var_1 != 0) {
          var_18 = var_4;
        }
        var_14 = (type_7)var_18;
        (*(type_8 *)PTR_hex2stderr_0005489c)(resp);
        var_4 = 0;
      }
      else {
        (*(type_8 *)PTR_pr2ws_000548ec)(var_6 + -0x570);
        buffer_id = 0;
        (*(type_8 *)PTR_hex2stderr_0005489c)(resp);
        var_14 = (type_7)var_4;
        var_4 = 0;
      }
    }
    (*(type_8 *)PTR_destruct_scsi_pt_obj_0005496c)(var_2);
  }
  else {
    var_10 = auStack_6e;
    (*(type_8 *)PTR_pr2ws_000548ec)(var_6 + -0x1a50,var_6 + -0x11a4);
    unaff_s3 = var_8 + 0x1f1c;
    var_9 = rbuf_cdb;
    do {
      var_11 = var_9 + 1;
      (*(type_8 *)PTR_pr2ws_000548ec)(unaff_s3,*var_9);
      var_9 = var_11;
    } while (var_10 != var_11);
    (*(type_8 *)PTR_pr2ws_000548ec)(var_6 + -0x990);
    var_2 = (*(type_8 *)PTR_construct_scsi_pt_obj_00054a54)();
    if (var_2 != 0) goto LAB_0002951c;
LAB_0002970c:
    var_14 = var_3 + 0x5c;
    var_4 = -1;
    (*(type_8 *)PTR_pr2ws_000548ec)(var_6 + -0x1974);
    var_39 = buffer_offset;
  }
  if (var_12 == *(int *)puVar3) {
    return var_4;
  }
  var_26 = sg_ll_write_buffer;
  var_13 = PTR___stack_chk_fail_00054a1c;
  (*(type_8 *)PTR___stack_chk_fail_00054a1c)();
  var_22 = var_16;
  var_21 = var_15;
  var_9 = local_98;
  var_17 = var_13 + 0x33060;
  bStack_11f = var_14 & 0x1f;
  puStack_c0 = puVar3;
  piVar20 = *(int **)(var_13 + 0x2b29c);
  pvStack_b8 = resp;
  puStack_bc = var_7;
  uStack_120 = ';';
  uStack_117 = 0;
  uStack_11e = (type_5)buffer_id;
  uStack_11d = (type_5)((type_4)var_39 >> 0x10);
  uStack_11c = (type_9)var_39;
  uStack_11a = (type_5)(var_15 >> 0x10);
  uStack_119 = (type_5)(var_15 >> 8);
  uStack_118 = (type_5)var_15;
  var_25 = *piVar20;
  var_18 = *(int *)(var_13 + 0x2b090);
  var_11 = var_10;
  iStack_d0 = var_2;
  iStack_cc = var_4;
  uStack_c8 = var_1;
  puStack_c4 = unaff_s3;
  iStack_b4 = sg_fd;
  puStack_b0 = var_10;
  pcStack_ac = var_26;
  uVar8 = uStack_11e;
  if (var_16 == (int *)0x0) {
LAB_0002984c:
    var_26 = *(type_8 **)(var_17 + -0x7dbc);
  }
  else {
    var_11 = auStack_116;
    (**(type_8 **)(var_13 + 0x2b13c))(*(int *)(var_13 + 0x2b090) + -0x1a50,var_18 + -0x1194);
    unaff_s3 = (uint8_t *)(*(int *)(var_17 + -0x7fd4) + 0x1f1c);
    var_19 = &uStack_120;
    do {
      var_20 = var_19 + 1;
      (**(type_8 **)(var_17 + -0x7f24))(unaff_s3,*var_19);
      uVar8 = (type_5)buffer_id;
      var_19 = var_20;
    } while (var_11 != var_20);
    (**(type_8 **)(var_17 + -0x7f24))(*(int *)(var_17 + -0x7fd0) + -0x990);
    if ((int)var_22 < 2) goto LAB_0002984c;
    var_26 = *(type_8 **)(var_17 + -0x7dbc);
    if ((var_9 != (uint8_t *)0x0) && (var_21 != 0)) {
      (**(type_8 **)(var_17 + -0x7f24))
                (*(int *)(var_17 + -0x7fd0) + -0x1184,var_18 + -0x1194);
      if (var_22 == (int *)0x2) {
        if (0x100 < (int)var_21) {
          var_2 = *(int *)(var_17 + -0x7fd0) + -0x1710;
        }
        else {
          var_2 = *(int *)(var_17 + -0x7fd0) + -0x1a5c;
        }
        (**(type_8 **)(var_17 + -0x7f24))(*(int *)(var_17 + -0x7fd4) + 0x23c4,var_2);
        uVar8 = 0xff;
        var_46 = 0x100;
        if (0x100 >= (int)var_21) {
          var_46 = var_21;
        }
        (**(type_8 **)(var_17 + -0x7f74))(var_9,var_46);
      }
      else {
        (**(type_8 **)(var_17 + -0x7f24))(*(int *)(var_17 + -0x7fd0) + -0x570);
        uVar8 = 0;
        (**(type_8 **)(var_17 + -0x7f74))(var_9,var_21);
      }
      goto LAB_0002984c;
    }
  }
  var_2 = (*var_26)();
  if (var_2 == 0) {
    var_3 = (char)var_18 + 'l';
    var_4 = -1;
    (**(type_8 **)(var_17 + -0x7f24))(*(int *)(var_17 + -0x7fd0) + -0x1974);
  }
  else {
    (**(type_8 **)(var_17 + -0x7fb0))(var_2,&uStack_120,10);
    unaff_s3 = auStack_114;
    (**(type_8 **)(var_17 + -0x7f1c))(var_2,unaff_s3,0x40);
    (**(type_8 **)(var_17 + -0x7d9c))(var_2,var_9,var_21);
    uVar8 = (**(type_8 **)(var_17 + -0x7e8c))(var_2,var_12,0x3c,var_22);
    piStack_134 = &var_24;
    uStack_13c = var_23 & 0xff;
    var_39 = 0;
    var_3 = (char)var_18 + 'l';
    var_28 = var_22;
    var_27 = unaff_s3;
    var_4 = (**(type_8 **)(var_17 + -0x7f40))(var_2);
    if (var_4 == -1) {
      uVar7 = (**(type_8 **)(var_17 + -0x7d74))(var_2);
      var_4 = (**(type_8 **)(var_17 + -0x7ee8))(uVar7);
    }
    else if (var_4 == -2) {
      var_4 = var_24;
      if (var_24 - 0x14U < 2) {
        var_4 = 0;
      }
    }
    else {
      var_4 = 0;
    }
    (**(type_8 **)(var_17 + -0x7ea4))(var_2);
  }
  if (var_25 == *piVar20) {
    return var_4;
  }
  var_26 = *(type_8 **)(var_17 + -0x7df4);
  pcVar26 = sg_ll_write_buffer_v2;
  iVar9 = var_25;
  (*var_26)();
  var_45 = piStack_134;
  var_36 = var_28;
  var_21 = uStack_13c;
  var_35 = var_26 + 0x32d3c;
  piVar23 = *(int **)(var_26 + 0x2af78);
  var_38 = *piVar23;
  puStack_160 = var_9;
  piStack_170 = var_22;
  uStack_1c8 = 0x3b000000;
  uStack_1c4 = 0;
  sStack_1c0 = 0;
  iStack_178 = var_2;
  iStack_174 = var_4;
  puStack_16c = unaff_s3;
  piStack_168 = piVar20;
  iStack_164 = var_18;
  iStack_15c = var_12;
  puStack_158 = var_11;
  pcStack_154 = pcVar26;
  if (var_27 < (uint8_t *)0x1000000) {
    uVar7 = 0;
    uVar8 = 0;
    if (var_28 < (int *)0x1000000) {
      sStack_1c0 = (type_10)(type_7)var_28 << 8;
      uStack_1c8 = var_29(var_30(0x3b00,(char)var_39),(char)((type_4)var_27 >> 0x10));
      var_33 = var_31(var_3,uStack_1c8._2_2_);
      uStack_1c8 = var_32(0x3b,var_33 & 0x1fffff);
      uStack_1c4 = var_29(var_30((short)var_27,(char)((type_4)var_28 >> 0x10)),
                            (char)((type_4)var_28 >> 8));
      if (var_34 != 0) {
        var_11 = auStack_1be;
        (**(type_8 **)(var_26 + 0x2ae18))(*(int *)(var_26 + 0x2ad6c) + -0x10fc);
        unaff_s3 = (uint8_t *)(*(int *)(var_35 + -0x7fd4) + 0x1f1c);
        var_9 = (uint8_t *)&uStack_1c8;
        do {
          var_19 = var_9 + 1;
          (**(type_8 **)(var_35 + -0x7f24))(unaff_s3,*var_9);
          uVar8 = (type_5)uVar7;
          var_9 = var_19;
        } while (var_19 != var_11);
        (**(type_8 **)(var_35 + -0x7f24))(*(int *)(var_35 + -0x7fd0) + -0x990);
        if (((1 < (int)var_34) && (var_21 != 0)) && (var_36 != (int *)0x0)) {
          if ((int *)0x100 < var_36) {
            var_12 = *(int *)(var_35 + -0x7fd0) + -0x116c;
          }
          else {
            var_12 = *(int *)(var_35 + -0x7fd0) + -0x1a5c;
          }
          (**(type_8 **)(var_35 + -0x7f24))(*(int *)(var_35 + -0x7fd0) + -0x10e4,var_12);
          uVar8 = 0xff;
          var_22 = (int *)0x100;
          if ((int *)0x100 >= var_36) {
            var_22 = var_36;
          }
          (**(type_8 **)(var_35 + -0x7f74))(var_21,var_22);
        }
      }
      if ((int)var_45 < 1) {
        var_45 = (int *)0x3c;
      }
      var_2 = (**(type_8 **)(var_35 + -0x7dbc))();
      if (var_2 == 0) {
        var_12 = -1;
        var_4 = *(int *)(var_35 + -0x7fd0) + -0xeb4;
        (**(type_8 **)(var_35 + -0x7f24))(*(int *)(var_35 + -0x7fd0) + -0x1974);
      }
      else {
        (**(type_8 **)(var_35 + -0x7fb0))(var_2,&uStack_1c8,10);
        unaff_s3 = auStack_1bc;
        (**(type_8 **)(var_35 + -0x7f1c))(var_2,unaff_s3,0x40);
        (**(type_8 **)(var_35 + -0x7d9c))(var_2,var_21,var_36);
        uVar8 = (**(type_8 **)(var_35 + -0x7e8c))(var_2,iVar9,var_45,var_34);
        var_39 = 0;
        var_43 = &var_37;
        var_47 = var_34;
        var_42 = (type_4)var_17 & 0xff;
        var_4 = *(int *)(var_35 + -0x7fd4) + 0x3a04;
        puStack_1e8 = unaff_s3;
        var_12 = (**(type_8 **)(var_35 + -0x7f40))(var_2);
        if (var_12 == -1) {
          uVar7 = (**(type_8 **)(var_35 + -0x7d74))(var_2);
          var_12 = (**(type_8 **)(var_35 + -0x7ee8))(uVar7);
        }
        else if (var_12 == -2) {
          var_12 = var_37;
          if (var_37 - 0x14U < 2) {
            var_12 = 0;
          }
        }
        else {
          var_12 = 0;
        }
        (**(type_8 **)(var_35 + -0x7ea4))(var_2);
      }
    }
    else {
      var_12 = -1;
      var_4 = *(int *)(var_26 + 0x2ad6c) + -0xeb4;
      (**(type_8 **)(var_26 + 0x2ae18))(*(int *)(var_26 + 0x2ad6c) + -0x1128);
    }
  }
  else {
    var_12 = -1;
    var_4 = *(int *)(var_26 + 0x2ad6c) + -0xeb4;
    (**(type_8 **)(var_26 + 0x2ae18))(*(int *)(var_26 + 0x2ad6c) + -0x1158);
  }
  if (var_38 == *piVar23) {
    return var_12;
  }
  var_26 = *(type_8 **)(var_35 + -0x7df4);
  pcVar26 = sg_ll_unmap_v2;
  var_18 = var_38;
  (*var_26)();
  var_22 = var_43;
  var_46 = var_42;
  var_9 = puStack_1e8;
  piVar20 = *(int **)(var_26 + 0x2ac2c);
  uStack_208 = var_21;
  uStack_218 = var_34;
  var_44[1] = 0x42000000;
  var_48 = *piVar20;
  if (var_4 != 0) {
    var_44[1] = 0x42010000;
  }
  if (var_39 < 1) {
    var_39 = 0x3c;
  }
  var_4 = *(int *)(var_26 + 0x2aa20);
  var_44[0] = var_40((short)var_42,var_44[0]._2_2_);
  sStack_268 = (type_10)(type_7)var_42 << 8;
  var_44[2] = (int)(var_41(uVar8,(char)(var_42 >> 8)) & 0x1fff);
  iStack_220 = var_2;
  iStack_21c = var_12;
  puStack_214 = unaff_s3;
  piStack_210 = var_45;
  piStack_20c = piVar23;
  iStack_204 = iVar9;
  puStack_200 = var_11;
  pcStack_1fc = pcVar26;
  iStack_1f8 = var_18;
  if (var_43 != (int *)0x0) {
    (**(type_8 **)(var_26 + 0x2aacc))(*(int *)(var_26 + 0x2aa20) + -0x1a50,var_4 + -0x10c0);
    var_12 = *(int *)(var_26 + 0x2aa1c);
    var_36 = var_44 + 1;
    do {
      var_45 = (int *)((int)var_36 + 1);
      (**(type_8 **)(var_26 + 0x2aacc))(var_12 + 0x1f1c,*(type_5 *)var_36);
      var_36 = var_45;
    } while (&uStack_266 != var_45);
    (**(type_8 **)(var_26 + 0x2aacc))(*(int *)(var_26 + 0x2aa20) + -0x990);
    if (1 < (int)var_22) {
      pcVar26 = *(type_8 **)(var_26 + 0x2ac34);
      if ((var_9 == (uint8_t *)0x0) || (var_46 == 0)) goto LAB_00029ecc;
      (**(type_8 **)(var_26 + 0x2aacc))(*(int *)(var_26 + 0x2aa20) + -0x13cc,var_4 + -0x10c0);
      (**(type_8 **)(var_26 + 0x2aa7c))(var_9,var_46,0xffffffff);
    }
  }
  pcVar26 = *(type_8 **)(var_26 + 0x2ac34);
LAB_00029ecc:
  var_12 = (*pcVar26)();
  if (var_12 == 0) {
    var_2 = -1;
    (**(type_8 **)(var_26 + 0x2aacc))(*(int *)(var_26 + 0x2aa20) + -0x1974,var_4 + -0x10c0);
  }
  else {
    (**(type_8 **)(var_26 + 0x2aa40))(var_12,var_44 + 1,10);
    (**(type_8 **)(var_26 + 0x2aad4))(var_12,(int)&uStack_266 + 2,0x40);
    (**(type_8 **)(var_26 + 0x2ac54))(var_12,var_9,var_46);
    uVar7 = (**(type_8 **)(var_26 + 0x2ab64))(var_12,iStack_1f8,var_39,var_22);
    var_2 = (**(type_8 **)(var_26 + 0x2aab0))
                      (var_12,var_4 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,var_47 & 0xff,var_22
                       ,var_44);
    if (var_2 == -1) {
      uVar7 = (**(type_8 **)(var_26 + 0x2ac7c))(var_12);
      var_2 = (**(type_8 **)(var_26 + 0x2ab08))(uVar7);
    }
    else if (var_2 == -2) {
      var_2 = var_44[0];
      if (var_44[0] - 0x14U < 2) {
        var_2 = 0;
      }
    }
    else {
      var_2 = 0;
    }
    (**(type_8 **)(var_26 + 0x2ab4c))(var_12);
  }
  if (var_48 != *piVar20) {
    var_26 = *(type_8 **)(var_26 + 0x2abfc);
    (*var_26)();
    var_12 = (**(type_8 **)(var_26 + 0x2a938))();
    return var_12;
  }
  return var_2;
}


(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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (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: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (goto_statement label: (statement_identifier))) (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 (identifier) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (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: (identifier) right: (number_literal))))) consequence: (compound_statement (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 (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (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 (binary_expression left: (identifier) right: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)) value: (identifier)))) (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (number_literal) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) 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: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (return_statement (identifier)))) (return_statement (identifier)))))

int MASKED(undefined4 param_1,byte param_2,undefined4 param_3,int param_4,
                     undefined4 param_5,int param_6,byte param_7,uint param_8)

{
  uint3 uVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  undefined1 uVar8;
  undefined4 uVar7;
  int iVar9;
  byte bVar14;
  undefined *puVar10;
  char cVar15;
  uint uVar11;
  int iVar12;
  int *piVar13;
  undefined4 *puVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  undefined *unaff_s3;
  int *piVar19;
  int *piVar20;
  int iVar21;
  int *piVar22;
  undefined *puVar23;
  undefined4 *unaff_s8;
  int *piVar24;
  code *pcVar25;
  code *pcVar26;
  int aiStack_274 [3];
  short sStack_268;
  undefined4 uStack_266;
  int iStack_224;
  int iStack_220;
  int iStack_21c;
  uint uStack_218;
  undefined *puStack_214;
  int *piStack_210;
  int *piStack_20c;
  uint uStack_208;
  int iStack_204;
  undefined4 *puStack_200;
  code *pcStack_1fc;
  int iStack_1f8;
  undefined *puStack_1e8;
  uint uStack_1e4;
  uint uStack_1e0;
  int *piStack_1dc;
  code *pcStack_1d8;
  int iStack_1cc;
  undefined4 uStack_1c8;
  undefined4 uStack_1c4;
  short sStack_1c0;
  undefined4 uStack_1be;
  int iStack_17c;
  int iStack_178;
  int iStack_174;
  int *piStack_170;
  undefined *puStack_16c;
  int *piStack_168;
  int iStack_164;
  undefined *puStack_160;
  int iStack_15c;
  undefined4 *puStack_158;
  code *pcStack_154;
  undefined *puStack_140;
  uint uStack_13c;
  int *piStack_138;
  int *piStack_134;
  undefined *puStack_130;
  uint uStack_12c;
  int iStack_124;
  undefined4 uStack_120;
  undefined2 uStack_11c;
  undefined1 uStack_11a;
  undefined1 uStack_119;
  undefined1 uStack_118;
  undefined1 uStack_117;
  undefined4 uStack_116;
  int iStack_d4;
  int iStack_d0;
  int iStack_cc;
  uint uStack_c8;
  undefined *puStack_c4;
  undefined *puStack_c0;
  undefined *puStack_bc;
  undefined4 uStack_b8;
  undefined4 uStack_b4;
  undefined4 *puStack_b0;
  code *pcStack_ac;
  undefined *local_98;
  uint local_94;
  uint local_90;
  int *local_8c;
  int local_7c;
  undefined4 local_78;
  undefined2 local_74;
  undefined1 local_72;
  undefined1 local_71;
  undefined1 local_70;
  undefined1 local_6f;
  undefined4 uStack_6e;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_00054a4c;
  puVar2 = PTR_s_tatus_00054840;
  local_78._1_1_ = param_2 & 0x1f;
  local_78._0_1_ = 0x3c;
  local_6f = 0;
  local_78._2_1_ = (undefined1)param_3;
  local_78._3_1_ = (undefined1)((uint)param_4 >> 0x10);
  local_74 = (undefined2)param_4;
  local_72 = (undefined1)((uint)param_6 >> 0x10);
  local_71 = (undefined1)((uint)param_6 >> 8);
  local_70 = (undefined1)param_6;
  local_2c = *(int *)PTR___stack_chk_guard_00054a4c;
  cVar15 = (char)PTR_s_tatus_00054840;
  if (param_8 == 0) {
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 == 0) goto LAB_0002970c;
LAB_0002951c:
    (*(code *)PTR_set_scsi_pt_cdb_00054860)(iVar5,&local_78,10);
    unaff_s3 = (undefined *)((int)&uStack_6e + 2);
    (*(code *)PTR_set_scsi_pt_sense_000548f4)(iVar5,unaff_s3,0x40);
    (*(code *)PTR_set_scsi_pt_data_in_00054a80)(iVar5,param_5,param_6);
    param_3 = (*(code *)PTR_do_scsi_pt_00054984)(iVar5,param_1,0x3c,param_8);
    local_8c = &local_7c;
    local_94 = (uint)param_7;
    bVar14 = cVar15 + 0x5c;
    local_90 = param_8;
    local_98 = unaff_s3;
    iVar6 = (*(code *)PTR_sg_cmds_process_resp_000548d0)(iVar5);
    if (iVar6 == -1) {
      uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00054a9c)(iVar5);
      iVar6 = (*(code *)PTR_sg_convert_errno_00054928)(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = local_7c;
      if (local_7c - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else if (((int)param_8 < 3) || (iVar6 < 1)) {
      iVar6 = 0;
    }
    else {
      (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x16d4,puVar2 + -0x11a4);
      if (param_8 == 3) {
        param_8 = (uint)(iVar6 < 0x101);
        if (param_8 == 0) {
          puVar10 = PTR_s_tatus_00054840 + -0x1710;
        }
        else {
          puVar10 = PTR_s_tatus_00054840 + -0x1a5c;
        }
        (*(code *)PTR_pr2ws_000548ec)(PTR_LAB_0005483c + 0x23c4,puVar10);
        param_3 = 0xffffffff;
        iVar12 = 0;
        if (param_8 != 0) {
          iVar12 = iVar6;
        }
        bVar14 = (byte)iVar12;
        (*(code *)PTR_hex2stderr_0005489c)(param_5);
        iVar6 = 0;
      }
      else {
        (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x570);
        param_3 = 0;
        (*(code *)PTR_hex2stderr_0005489c)(param_5);
        bVar14 = (byte)iVar6;
        iVar6 = 0;
      }
    }
    (*(code *)PTR_destruct_scsi_pt_obj_0005496c)(iVar5);
  }
  else {
    unaff_s8 = &uStack_6e;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1a50,PTR_s_tatus_00054840 + -0x11a4);
    unaff_s3 = PTR_LAB_0005483c + 0x1f1c;
    puVar16 = &local_78;
    do {
      puVar17 = (undefined4 *)((int)puVar16 + 1);
      (*(code *)PTR_pr2ws_000548ec)(unaff_s3,*(undefined1 *)puVar16);
      puVar16 = puVar17;
    } while (unaff_s8 != puVar17);
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x990);
    iVar5 = (*(code *)PTR_construct_scsi_pt_obj_00054a54)();
    if (iVar5 != 0) goto LAB_0002951c;
LAB_0002970c:
    bVar14 = cVar15 + 0x5c;
    iVar6 = -1;
    (*(code *)PTR_pr2ws_000548ec)(PTR_s_tatus_00054840 + -0x1974);
    param_6 = param_4;
  }
  if (local_2c == *(int *)puVar3) {
    return iVar6;
  }
  pcVar25 = sg_ll_write_buffer;
  iVar12 = local_2c;
  puVar23 = PTR___stack_chk_fail_00054a1c;
  (*(code *)PTR___stack_chk_fail_00054a1c)();
  piVar13 = local_8c;
  uVar4 = local_94;
  puVar10 = local_98;
  puStack_130 = puVar23 + 0x33060;
  uStack_120._1_1_ = bVar14 & 0x1f;
  puStack_c0 = puVar3;
  piVar19 = *(int **)(puVar23 + 0x2b29c);
  uStack_b8 = param_5;
  puStack_bc = puVar2;
  uStack_120._0_1_ = 0x3b;
  uStack_117 = 0;
  uStack_120._2_1_ = (undefined1)param_3;
  uStack_120._3_1_ = (undefined1)((uint)param_6 >> 0x10);
  uStack_11c = (undefined2)param_6;
  uStack_11a = (undefined1)(local_94 >> 0x10);
  uStack_119 = (undefined1)(local_94 >> 8);
  uStack_118 = (undefined1)local_94;
  iStack_d4 = *piVar19;
  iVar21 = *(int *)(puVar23 + 0x2b090);
  puVar16 = unaff_s8;
  iStack_d0 = iVar5;
  iStack_cc = iVar6;
  uStack_c8 = param_8;
  puStack_c4 = unaff_s3;
  uStack_b4 = param_1;
  puStack_b0 = unaff_s8;
  pcStack_ac = pcVar25;
  uVar8 = uStack_120._2_1_;
  if (local_8c == (int *)0x0) {
LAB_0002984c:
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
  }
  else {
    puVar16 = &uStack_116;
    (**(code **)(puVar23 + 0x2b13c))(*(int *)(puVar23 + 0x2b090) + -0x1a50,iVar21 + -0x1194);
    unaff_s3 = (undefined *)(*(int *)(puStack_130 + -0x7fd4) + 0x1f1c);
    puVar17 = &uStack_120;
    do {
      puVar18 = (undefined4 *)((int)puVar17 + 1);
      (**(code **)(puStack_130 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);
      uVar8 = (undefined1)param_3;
      puVar17 = puVar18;
    } while (puVar16 != puVar18);
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x990);
    if ((int)piVar13 < 2) goto LAB_0002984c;
    pcVar25 = *(code **)(puStack_130 + -0x7dbc);
    if ((puVar10 != (undefined *)0x0) && (uVar4 != 0)) {
      (**(code **)(puStack_130 + -0x7f24))
                (*(int *)(puStack_130 + -0x7fd0) + -0x1184,iVar21 + -0x1194);
      if (piVar13 == (int *)0x2) {
        if (0x100 < (int)uVar4) {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1710;
        }
        else {
          iVar5 = *(int *)(puStack_130 + -0x7fd0) + -0x1a5c;
        }
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd4) + 0x23c4,iVar5);
        uVar8 = 0xff;
        uVar11 = 0x100;
        if (0x100 >= (int)uVar4) {
          uVar11 = uVar4;
        }
        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar11);
      }
      else {
        (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x570);
        uVar8 = 0;
        (**(code **)(puStack_130 + -0x7f74))(puVar10,uVar4);
      }
      goto LAB_0002984c;
    }
  }
  iVar5 = (*pcVar25)();
  if (iVar5 == 0) {
    cVar15 = (char)iVar21 + 'l';
    iVar6 = -1;
    (**(code **)(puStack_130 + -0x7f24))(*(int *)(puStack_130 + -0x7fd0) + -0x1974);
  }
  else {
    (**(code **)(puStack_130 + -0x7fb0))(iVar5,&uStack_120,10);
    unaff_s3 = (undefined *)((int)&uStack_116 + 2);
    (**(code **)(puStack_130 + -0x7f1c))(iVar5,unaff_s3,0x40);
    (**(code **)(puStack_130 + -0x7d9c))(iVar5,puVar10,uVar4);
    uVar8 = (**(code **)(puStack_130 + -0x7e8c))(iVar5,iVar12,0x3c,piVar13);
    piStack_134 = &iStack_124;
    uStack_13c = local_90 & 0xff;
    param_6 = 0;
    cVar15 = (char)iVar21 + 'l';
    piStack_138 = piVar13;
    puStack_140 = unaff_s3;
    iVar6 = (**(code **)(puStack_130 + -0x7f40))(iVar5);
    if (iVar6 == -1) {
      uVar7 = (**(code **)(puStack_130 + -0x7d74))(iVar5);
      iVar6 = (**(code **)(puStack_130 + -0x7ee8))(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = iStack_124;
      if (iStack_124 - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else {
      iVar6 = 0;
    }
    (**(code **)(puStack_130 + -0x7ea4))(iVar5);
  }
  if (iStack_d4 == *piVar19) {
    return iVar6;
  }
  pcVar25 = *(code **)(puStack_130 + -0x7df4);
  pcVar26 = sg_ll_write_buffer_v2;
  iVar9 = iStack_d4;
  (*pcVar25)();
  piVar20 = piStack_134;
  piVar24 = piStack_138;
  uVar4 = uStack_13c;
  pcStack_1d8 = pcVar25 + 0x32d3c;
  piVar22 = *(int **)(pcVar25 + 0x2af78);
  iStack_17c = *piVar22;
  puStack_160 = puVar10;
  piStack_170 = piVar13;
  uStack_1c8 = 0x3b000000;
  uStack_1c4 = 0;
  sStack_1c0 = 0;
  iStack_178 = iVar5;
  iStack_174 = iVar6;
  puStack_16c = unaff_s3;
  piStack_168 = piVar19;
  iStack_164 = iVar21;
  iStack_15c = iVar12;
  puStack_158 = puVar16;
  pcStack_154 = pcVar26;
  if (puStack_140 < (undefined *)0x1000000) {
    uVar7 = 0;
    uVar8 = 0;
    if (piStack_138 < (int *)0x1000000) {
      sStack_1c0 = (ushort)(byte)piStack_138 << 8;
      uStack_1c8 = CONCAT31(CONCAT21(0x3b00,(char)param_6),(char)((uint)puStack_140 >> 0x10));
      uVar1 = CONCAT12(cVar15,uStack_1c8._2_2_);
      uStack_1c8 = CONCAT13(0x3b,uVar1 & 0x1fffff);
      uStack_1c4 = CONCAT31(CONCAT21((short)puStack_140,(char)((uint)piStack_138 >> 0x10)),
                            (char)((uint)piStack_138 >> 8));
      if (uStack_12c != 0) {
        puVar16 = &uStack_1be;
        (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x10fc);
        unaff_s3 = (undefined *)(*(int *)(pcStack_1d8 + -0x7fd4) + 0x1f1c);
        puVar17 = &uStack_1c8;
        do {
          puVar18 = (undefined4 *)((int)puVar17 + 1);
          (**(code **)(pcStack_1d8 + -0x7f24))(unaff_s3,*(undefined1 *)puVar17);
          uVar8 = (undefined1)uVar7;
          puVar17 = puVar18;
        } while (puVar18 != puVar16);
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x990);
        if (((1 < (int)uStack_12c) && (uVar4 != 0)) && (piVar24 != (int *)0x0)) {
          if ((int *)0x100 < piVar24) {
            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x116c;
          }
          else {
            iVar5 = *(int *)(pcStack_1d8 + -0x7fd0) + -0x1a5c;
          }
          (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x10e4,iVar5);
          uVar8 = 0xff;
          piVar13 = (int *)0x100;
          if ((int *)0x100 >= piVar24) {
            piVar13 = piVar24;
          }
          (**(code **)(pcStack_1d8 + -0x7f74))(uVar4,piVar13);
        }
      }
      if ((int)piVar20 < 1) {
        piVar20 = (int *)0x3c;
      }
      iVar5 = (**(code **)(pcStack_1d8 + -0x7dbc))();
      if (iVar5 == 0) {
        iVar6 = -1;
        iVar12 = *(int *)(pcStack_1d8 + -0x7fd0) + -0xeb4;
        (**(code **)(pcStack_1d8 + -0x7f24))(*(int *)(pcStack_1d8 + -0x7fd0) + -0x1974);
      }
      else {
        (**(code **)(pcStack_1d8 + -0x7fb0))(iVar5,&uStack_1c8,10);
        unaff_s3 = (undefined *)((int)&uStack_1be + 2);
        (**(code **)(pcStack_1d8 + -0x7f1c))(iVar5,unaff_s3,0x40);
        (**(code **)(pcStack_1d8 + -0x7d9c))(iVar5,uVar4,piVar24);
        uVar8 = (**(code **)(pcStack_1d8 + -0x7e8c))(iVar5,iVar9,piVar20,uStack_12c);
        param_6 = 0;
        piStack_1dc = &iStack_1cc;
        uStack_1e0 = uStack_12c;
        uStack_1e4 = (uint)puStack_130 & 0xff;
        iVar12 = *(int *)(pcStack_1d8 + -0x7fd4) + 0x3a04;
        puStack_1e8 = unaff_s3;
        iVar6 = (**(code **)(pcStack_1d8 + -0x7f40))(iVar5);
        if (iVar6 == -1) {
          uVar7 = (**(code **)(pcStack_1d8 + -0x7d74))(iVar5);
          iVar6 = (**(code **)(pcStack_1d8 + -0x7ee8))(uVar7);
        }
        else if (iVar6 == -2) {
          iVar6 = iStack_1cc;
          if (iStack_1cc - 0x14U < 2) {
            iVar6 = 0;
          }
        }
        else {
          iVar6 = 0;
        }
        (**(code **)(pcStack_1d8 + -0x7ea4))(iVar5);
      }
    }
    else {
      iVar6 = -1;
      iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
      (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1128);
    }
  }
  else {
    iVar6 = -1;
    iVar12 = *(int *)(pcVar25 + 0x2ad6c) + -0xeb4;
    (**(code **)(pcVar25 + 0x2ae18))(*(int *)(pcVar25 + 0x2ad6c) + -0x1158);
  }
  if (iStack_17c == *piVar22) {
    return iVar6;
  }
  pcVar25 = *(code **)(pcStack_1d8 + -0x7df4);
  pcVar26 = sg_ll_unmap_v2;
  iVar21 = iStack_17c;
  (*pcVar25)();
  piVar13 = piStack_1dc;
  uVar11 = uStack_1e4;
  puVar2 = puStack_1e8;
  piVar19 = *(int **)(pcVar25 + 0x2ac2c);
  uStack_208 = uVar4;
  uStack_218 = uStack_12c;
  aiStack_274[1] = 0x42000000;
  iStack_224 = *piVar19;
  if (iVar12 != 0) {
    aiStack_274[1] = 0x42010000;
  }
  if (param_6 < 1) {
    param_6 = 0x3c;
  }
  iVar12 = *(int *)(pcVar25 + 0x2aa20);
  aiStack_274[0] = CONCAT22((short)uStack_1e4,aiStack_274[0]._2_2_);
  sStack_268 = (ushort)(byte)uStack_1e4 << 8;
  aiStack_274[2] = (int)(CONCAT11(uVar8,(char)(uStack_1e4 >> 8)) & 0x1fff);
  iStack_220 = iVar5;
  iStack_21c = iVar6;
  puStack_214 = unaff_s3;
  piStack_210 = piVar20;
  piStack_20c = piVar22;
  iStack_204 = iVar9;
  puStack_200 = puVar16;
  pcStack_1fc = pcVar26;
  iStack_1f8 = iVar21;
  if (piStack_1dc != (int *)0x0) {
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1a50,iVar12 + -0x10c0);
    iVar5 = *(int *)(pcVar25 + 0x2aa1c);
    piVar24 = aiStack_274 + 1;
    do {
      piVar20 = (int *)((int)piVar24 + 1);
      (**(code **)(pcVar25 + 0x2aacc))(iVar5 + 0x1f1c,*(undefined1 *)piVar24);
      piVar24 = piVar20;
    } while (&uStack_266 != piVar20);
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x990);
    if (1 < (int)piVar13) {
      pcVar26 = *(code **)(pcVar25 + 0x2ac34);
      if ((puVar2 == (undefined *)0x0) || (uVar11 == 0)) goto LAB_00029ecc;
      (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x13cc,iVar12 + -0x10c0);
      (**(code **)(pcVar25 + 0x2aa7c))(puVar2,uVar11,0xffffffff);
    }
  }
  pcVar26 = *(code **)(pcVar25 + 0x2ac34);
LAB_00029ecc:
  iVar5 = (*pcVar26)();
  if (iVar5 == 0) {
    iVar6 = -1;
    (**(code **)(pcVar25 + 0x2aacc))(*(int *)(pcVar25 + 0x2aa20) + -0x1974,iVar12 + -0x10c0);
  }
  else {
    (**(code **)(pcVar25 + 0x2aa40))(iVar5,aiStack_274 + 1,10);
    (**(code **)(pcVar25 + 0x2aad4))(iVar5,(int)&uStack_266 + 2,0x40);
    (**(code **)(pcVar25 + 0x2ac54))(iVar5,puVar2,uVar11);
    uVar7 = (**(code **)(pcVar25 + 0x2ab64))(iVar5,iStack_1f8,param_6,piVar13);
    iVar6 = (**(code **)(pcVar25 + 0x2aab0))
                      (iVar5,iVar12 + -0x10c0,uVar7,0,(int)&uStack_266 + 2,uStack_1e0 & 0xff,piVar13
                       ,aiStack_274);
    if (iVar6 == -1) {
      uVar7 = (**(code **)(pcVar25 + 0x2ac7c))(iVar5);
      iVar6 = (**(code **)(pcVar25 + 0x2ab08))(uVar7);
    }
    else if (iVar6 == -2) {
      iVar6 = aiStack_274[0];
      if (aiStack_274[0] - 0x14U < 2) {
        iVar6 = 0;
      }
    }
    else {
      iVar6 = 0;
    }
    (**(code **)(pcVar25 + 0x2ab4c))(iVar5);
  }
  if (iStack_224 != *piVar19) {
    pcVar25 = *(code **)(pcVar25 + 0x2abfc);
    (*pcVar25)();
    iVar5 = (**(code **)(pcVar25 + 0x2a938))();
    return iVar5;
  }
  return iVar6;
}

