
/* WARNING: Removing unreachable block (ram,0x0002e220) */
/* WARNING: Removing unreachable block (ram,0x0002e278) */
/* WARNING: Removing unreachable block (ram,0x0002e228) */
/* WARNING: Removing unreachable block (ram,0x0002e230) */
/* WARNING: Removing unreachable block (ram,0x0002e254) */
/* WARNING: Removing unreachable block (ram,0x0002e258) */
/* WARNING: Removing unreachable block (ram,0x0002df94) */
/* WARNING: Removing unreachable block (ram,0x0002e2c4) */

int sg_ll_get_config(int sg_fd,int rt,int starting,void *resp,int mx_resp_len,_Bool noisy,
                    int verbose)

{
  uint uVar1;
  uint8_t *puVar2;
  uint8_t *puVar3;
  uint8_t *puVar4;
  uint8_t *puVar5;
  sg_pt_base *psVar6;
  undefined4 uVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined *puVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  sg_pt_base *unaff_s0;
  byte *pbVar17;
  int iVar18;
  uint8_t *unaff_s2;
  byte *unaff_s4;
  byte *unaff_s5;
  byte *unaff_s6;
  code *pcVar19;
  code *pcVar20;
  code *pcVar21;
  int iStack_2d8;
  undefined4 uStack_28c;
  undefined4 uStack_288;
  undefined4 uStack_284;
  undefined4 uStack_280;
  int iStack_27c;
  undefined4 uStack_278;
  undefined4 uStack_274;
  undefined4 uStack_270;
  undefined4 *puStack_26c;
  sg_pt_base *psStack_264;
  int iStack_260;
  code *pcStack_25c;
  code *pcStack_248;
  undefined4 uStack_23c;
  undefined4 uStack_238;
  undefined1 uStack_234;
  undefined1 uStack_233;
  uint8_t *puStack_230;
  undefined4 uStack_22c;
  undefined4 uStack_228;
  undefined4 *puStack_224;
  code *pcStack_21c;
  code *pcStack_208;
  undefined4 uStack_1fc;
  undefined4 uStack_1f8;
  undefined4 uStack_1f4;
  undefined4 uStack_1f0;
  undefined4 *puStack_1ec;
  undefined4 uStack_1e4;
  byte *pbStack_1d0;
  uint uStack_1cc;
  uint uStack_1c8;
  uint *puStack_1c4;
  code *pcStack_1c0;
  uint uStack_1b4;
  byte abStack_1b0 [76];
  undefined4 *puStack_164;
  sg_pt_base *psStack_160;
  int iStack_15c;
  undefined4 *puStack_158;
  uint8_t *puStack_154;
  byte *pbStack_150;
  byte *pbStack_14c;
  byte *pbStack_148;
  code *pcStack_144;
  byte *pbStack_130;
  uint uStack_12c;
  undefined1 *puStack_128;
  int *piStack_124;
  undefined *puStack_120;
  int iStack_118;
  uint8_t *puStack_114;
  byte abStack_110 [2];
  undefined1 auStack_10e [4];
  undefined1 uStack_10a;
  undefined1 uStack_109;
  undefined2 uStack_108;
  undefined1 uStack_106;
  undefined1 uStack_105;
  byte abStack_104 [64];
  int iStack_c4;
  sg_pt_base *psStack_bc;
  int iStack_b8;
  uint8_t *puStack_b4;
  int iStack_b0;
  byte *pbStack_ac;
  byte *pbStack_a8;
  code *pcStack_a4;
  uint8_t *local_90;
  undefined4 *local_8c;
  uint8_t *local_88;
  int *local_84;
  int sense_cat;
  uint32_t u;
  uint8_t gcCmdBlk [10];
  byte abStack_66 [2];
  uint8_t sense_b [64];
  
  puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50;
  gcCmdBlk[0] = 'F';
  gcCmdBlk[1] = '\0';
  gcCmdBlk[2] = '\0';
  gcCmdBlk[3] = '\0';
  gcCmdBlk[4] = '\0';
  gcCmdBlk[5] = '\0';
  gcCmdBlk[6] = '\0';
  gcCmdBlk[7] = '\0';
  gcCmdBlk[8] = '\0';
  gcCmdBlk[9] = '\0';
  puVar3 = (uint8_t *)starting;
  if ((uint)rt < 4) {
    gcCmdBlk[1] = (uint8_t)rt;
    puVar4 = (uint8_t *)resp;
    unaff_s4 = (byte *)resp;
    unaff_s5 = (byte *)sg_fd;
    if ((uint)starting < 0x10000) {
      gcCmdBlk._2_2_ = (undefined2)starting;
      if ((uint)mx_resp_len < 0x10000) {
        u = CONCAT22((short)mx_resp_len,u._2_2_);
        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);
        gcCmdBlk[8] = (uint8_t)mx_resp_len;
        puVar5 = (uint8_t *)rt;
        if (verbose != 0) {
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);
          pbVar17 = gcCmdBlk;
          unaff_s6 = abStack_66;
          unaff_s2 = PTR_LAB_0005783c + 0x511c;
          do {
            puVar5 = (uint8_t *)(uint)*pbVar17;
            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);
            pbVar17 = pbVar17 + 1;
          } while (pbVar17 != unaff_s6);
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);
          puVar3 = (uint8_t *)starting;
        }
        starting = (int)puVar5;
        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);
        if (unaff_s0 == (sg_pt_base *)0x0) {
          iVar18 = -1;
        }
        else {
          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);
          unaff_s2 = sense_b;
          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);
          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);
          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);
          local_84 = &sense_cat;
          local_88 = (uint8_t *)verbose;
          local_8c = (undefined4 *)(uint)noisy;
          starting = (int)(PTR_s__00057840 + 0x23e0);
          local_90 = unaff_s2;
          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);
          if (puVar4 == (uint8_t *)0xffffffff) {
            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);
            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);
          }
          else if (puVar4 == (uint8_t *)0xfffffffe) {
            if (sense_cat - 5U < 0x11) {
                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */
                    /* WARNING: Treating indirect jump as call */
              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))
                                 ();
              return iVar18;
            }
            iVar18 = -1;
          }
          else if (verbose < 3) {
            iVar18 = 0;
          }
          else {
            iVar18 = 0;
            if (3 < (int)puVar4) {
                    /* WARNING: Load size is inaccurate */
              u = *resp;
              starting = u;
              if ((int)u < 0) {
                starting = 0;
              }
              if ((int)puVar4 <= starting) {
                starting = (int)puVar4;
              }
              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);
              if (verbose == 3) {
                if (starting < 0x101) {
                  puVar13 = PTR_s__00057840 + 0x17b4;
                }
                else {
                  puVar13 = PTR_s__00057840 + 0x1b00;
                }
                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);
                puVar3 = (uint8_t *)0xffffffff;
                puVar4 = (uint8_t *)0x100;
                if (starting < 0x101) {
                  puVar4 = (uint8_t *)starting;
                }
                (*(code *)PTR_hex2stderr_0005789c)(resp);
                iVar18 = 0;
                starting = (int)puVar4;
              }
              else {
                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);
                puVar3 = (uint8_t *)0x0;
                (*(code *)PTR_hex2stderr_0005789c)(resp);
                iVar18 = 0;
              }
            }
          }
          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);
          puVar4 = (uint8_t *)mx_resp_len;
        }
      }
      else {
        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);
        iVar18 = -1;
      }
    }
    else {
      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);
      iVar18 = -1;
    }
  }
  else {
    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);
    iVar18 = -1;
    starting = rt;
    puVar4 = (uint8_t *)resp;
  }
  if (puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {
    return iVar18;
  }
  pcVar19 = sg_ll_get_performance;
  puVar13 = PTR___stack_chk_fail_00057a1c;
  (*(code *)PTR___stack_chk_fail_00057a1c)();
  puVar10 = local_8c;
  puVar5 = local_90;
  puStack_120 = puVar13 + 0x31938;
  pcStack_a4 = pcVar19;
  pbStack_a8 = unaff_s5;
  pbStack_ac = unaff_s4;
  iStack_b0 = verbose;
  puStack_b4 = unaff_s2;
  iStack_b8 = iVar18;
  psStack_bc = unaff_s0;
  iStack_c4 = **(int **)(puVar13 + 0x29b78);
  abStack_110[0] = 0xac;
  abStack_110[1] = 0;
  auStack_10e[0] = 0;
  auStack_10e[1] = 0;
  auStack_10e[2] = 0;
  auStack_10e[3] = 0;
  uStack_10a = 0;
  uStack_109 = 0;
  uStack_108 = 0;
  uStack_106 = 0;
  uStack_105 = 0;
  if ((uint)starting < (uint8_t *)0x20) {
    abStack_110[1] = (char)starting;
    pbVar17 = abStack_110 + 2;
    uVar1 = (uint)pbVar17 & 3;
    *(uint *)(pbVar17 + -uVar1) =
         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;
    pbVar17 = abStack_110 + 5;
    uVar1 = (uint)pbVar17 & 3;
    *(uint *)(pbVar17 + -uVar1) =
         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |
         (int)puVar3 << (3 - uVar1) * 8;
    verbose = (int)puVar2;
    puStack_114 = puVar3;
    if (puVar4 < "\x7fELF\x01\x02\x01") {
      uStack_108 = SUB42(puVar4,0);
      if (puVar5 < (uint8_t *)0x100) {
        uStack_106 = SUB41(puVar5,0);
        (**(code **)(puVar13 + 0x29a14))
                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);
        pbVar17 = abStack_110;
        unaff_s5 = abStack_104;
        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);
        do {
          starting = (int)*pbVar17;
          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);
          pbVar17 = pbVar17 + 1;
        } while (pbVar17 != unaff_s5);
        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);
        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));
        if (unaff_s0 == (sg_pt_base *)0x0) {
          iVar18 = -1;
        }
        else {
          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);
          unaff_s4 = abStack_104;
          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);
          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);
          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);
          piStack_124 = &iStack_118;
          puStack_128 = &_gp;
          uStack_12c = (uint)local_84 & 0xff;
          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;
          puVar4 = local_88;
          pbStack_130 = unaff_s4;
          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);
          if (puVar5 == (uint8_t *)0xffffffff) {
            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);
            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);
          }
          else if (puVar5 == (uint8_t *)0xfffffffe) {
            if (iStack_118 - 5U < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar18 = (*(code *)(puStack_120 +
                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +
                                         (iStack_118 - 5U) * 4)))();
              return iVar18;
            }
            iVar18 = -1;
          }
          else {
            starting = *(int *)(puStack_120 + -0x7fd0);
            if ((int)puVar5 < 4) {
              iVar18 = 0;
            }
            else {
              puStack_114 = (uint8_t *)*puVar10;
              puVar2 = puStack_114;
              if ((int)puStack_114 < 0) {
                puVar2 = (uint8_t *)0x0;
              }
              if ((int)puVar5 <= (int)puVar2) {
                puVar2 = puVar5;
              }
              (**(code **)(puStack_120 + -0x7f24))
                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));
              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);
              puVar3 = (uint8_t *)0x0;
              starting = (int)puVar2;
              (**(code **)(puStack_120 + -0x7f74))(puVar10);
              iVar18 = 0;
            }
          }
          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);
          verbose = (int)puVar2;
        }
      }
      else {
        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);
        iVar18 = -1;
        starting = (int)puVar5;
      }
    }
    else {
      puVar2 = puVar4;
      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);
      iVar18 = -1;
      starting = (int)puVar4;
      puVar4 = puVar2;
    }
  }
  else {
    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);
    iVar18 = -1;
  }
  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {
    return iVar18;
  }
  pcVar19 = *(code **)(puStack_120 + -0x7df4);
  pcVar20 = sg_ll_set_streaming;
  iVar8 = iStack_c4;
  (*pcVar19)();
  uVar1 = uStack_12c;
  pcStack_1c0 = pcVar19 + 0x314e8;
  puStack_158 = puVar10;
  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728);
  abStack_1b0[0] = 0xb6;
  abStack_1b0[1] = 0;
  abStack_1b0[2] = 0;
  abStack_1b0[3] = 0;
  abStack_1b0[4] = 0;
  abStack_1b0[5] = 0;
  abStack_1b0[6] = 0;
  abStack_1b0[7] = 0;
  abStack_1b0[0xb] = 0;
  abStack_1b0[8] = (byte)starting;
  uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_);
  abStack_1b0[9] = (byte)((uint)puVar4 >> 8);
  abStack_1b0[10] = (byte)puVar4;
  psStack_160 = unaff_s0;
  iStack_15c = iVar18;
  puStack_154 = (uint8_t *)verbose;
  pbStack_150 = unaff_s4;
  pbStack_14c = unaff_s5;
  pbStack_148 = unaff_s6;
  pcStack_144 = pcVar20;
  if (uStack_12c != 0) {
    (**(code **)(pcVar19 + 0x295c4))
              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);
    pbVar17 = abStack_1b0;
    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);
    do {
      starting = (int)*pbVar17;
      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);
      pbVar17 = pbVar17 + 1;
    } while (pbVar17 != abStack_1b0 + 0xc);
    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);
    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);
    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;
    starting = *(int *)(pcStack_1c0 + -0x7fd0);
    if (puVar4 != (uint8_t *)0x0) {
      (**(code **)(pcStack_1c0 + -0x7f24))
                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));
      starting = (int)puVar4;
      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);
      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);
      goto LAB_0002e3c0;
    }
  }
  iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);
LAB_0002e3c0:
  psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));
  if (psVar6 == (sg_pt_base *)0x0) {
    iVar18 = -1;
  }
  else {
    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);
    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);
    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);
    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);
    puStack_1c4 = &uStack_1b4;
    uStack_1c8 = uVar1;
    uStack_1cc = (uint)pbStack_130 & 0xff;
    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;
    pbStack_1d0 = abStack_1b0 + 0xc;
    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);
    if (iVar8 == -1) {
      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);
      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);
    }
    else {
      iVar18 = 0;
      if (iVar8 == -2) {
        if (uStack_1b4 < 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          iVar18 = (*(pcStack_1c0 +
                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();
          return iVar18;
        }
        iVar18 = -1;
      }
    }
    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);
  }
  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {
    return iVar18;
  }
  pcVar19 = *(code **)(pcStack_1c0 + -0x7df4);
  uVar7 = 0x2e638;
  puVar10 = puStack_164;
  (*pcVar19)();
  pcStack_208 = pcVar19 + 0x311d0;
  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410);
  uStack_1fc = 0x20e8080;
  uStack_1f8 = 0xa0000;
  uStack_1f4 = 0;
  uStack_1f0 = 0;
  *puVar10 = 0x20e8080;
  puVar10[1] = 0xa0000;
  puVar10[2] = 0;
  puVar10[3] = 0;
  if ((uint8_t *)starting == (uint8_t *)0x1) {
    *(undefined1 *)((int)puVar10 + 2) = 0;
    *(undefined1 *)((int)puVar10 + 3) = 0;
    *(undefined1 *)(puVar10 + 1) = 0;
    *(undefined1 *)((int)puVar10 + 5) = 0;
    *(undefined1 *)((int)puVar10 + 6) = 0;
    *(undefined1 *)((int)puVar10 + 7) = 0;
    *(undefined1 *)(puVar10 + 2) = 0;
    *(undefined1 *)((int)puVar10 + 9) = 0;
    *(undefined1 *)((int)puVar10 + 10) = 0;
    *(undefined1 *)((int)puVar10 + 0xb) = 0;
    *(undefined1 *)(puVar10 + 3) = 0;
    *(undefined1 *)((int)puVar10 + 0xd) = 0;
    *(undefined1 *)((int)puVar10 + 0xe) = 0;
    *(undefined1 *)((int)puVar10 + 0xf) = 0;
  }
  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)) {
    return 0x10;
  }
  pcVar19 = *(code **)(pcVar19 + 0x293dc);
  pcVar20 = resp_ctrl_m_pg;
  puStack_1ec = puVar9;
  uStack_1e4 = uVar7;
  (*pcVar19)();
  pcStack_248 = pcVar19 + 0x310b8;
  puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8);
  iVar8 = *(int *)(pcVar19 + 0x290d4);
  uVar11 = *(undefined4 *)(iVar8 + 0x7700);
  uVar7 = *(undefined4 *)(iVar8 + 0x7704);
  *puVar9 = *(undefined4 *)(iVar8 + 0x76fc);
  puVar9[1] = uVar11;
  puVar9[2] = uVar7;
  if ((uint8_t *)starting == (uint8_t *)0x1) {
    uStack_23c = 0x6000000;
    uStack_238 = 0;
    uStack_234 = 0;
    uStack_233 = 0;
    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;
    *(undefined4 *)((int)puVar9 + 6) = 0;
    *(undefined1 *)((int)puVar9 + 10) = 0;
    *(undefined1 *)((int)puVar9 + 0xb) = 0;
  }
  else if ((uint8_t *)starting == (uint8_t *)0x2) {
    puStack_230 = (uint8_t *)0xa0a0200;
    uStack_22c = 0;
    uStack_228 = 0x24b;
    *puVar9 = 0xa0a0200;
    puVar9[1] = 0;
    puVar9[2] = 0x24b;
    starting = (int)puStack_230;
  }
  if (puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)) {
    return 0xc;
  }
  pcVar19 = *(code **)(pcVar19 + 0x292c4);
  pcVar21 = resp_ctrl_ext_m_pg;
  puStack_224 = puVar10;
  pcStack_21c = pcVar20;
  (*pcVar19)();
  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8);
  psStack_264 = psVar6;
  iStack_260 = iVar18;
  pcStack_25c = pcVar21;
  (**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);
  iVar18 = *(int *)(pcVar19 + 0x28f94);
  uVar16 = *(undefined4 *)(iVar18 + 0x76e0);
  uVar15 = *(undefined4 *)(iVar18 + 0x76e4);
  uVar14 = *(undefined4 *)(iVar18 + 0x76e8);
  iStack_2d8 = *(int *)(iVar18 + 0x76ec);
  uVar12 = *(undefined4 *)(iVar18 + 0x76f0);
  uVar11 = *(undefined4 *)(iVar18 + 0x76f4);
  uVar7 = *(undefined4 *)(iVar18 + 0x76f8);
  *puVar10 = *(undefined4 *)(iVar18 + 0x76dc);
  puVar10[1] = uVar16;
  puVar10[2] = uVar15;
  puVar10[3] = uVar14;
  puVar10[4] = iStack_2d8;
  puVar10[5] = uVar12;
  puVar10[6] = uVar11;
  puVar10[7] = uVar7;
  if ((uint8_t *)starting == (uint8_t *)0x1) {
    iStack_2d8 = 0;
    puVar10[1] = 0;
    puVar10[2] = 0;
    puVar10[3] = 0;
    puVar10[4] = 0;
    puVar10[5] = 0;
    puVar10[6] = 0;
    puVar10[7] = 0;
  }
  else if ((uint8_t *)starting == (uint8_t *)0x2) {
    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));
    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);
    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);
    *puVar10 = uStack_28c;
    puVar10[1] = uStack_288;
    puVar10[2] = uStack_284;
    puVar10[3] = uStack_280;
    puVar10[4] = iStack_27c;
    puVar10[5] = uStack_278;
    puVar10[6] = uStack_274;
    puVar10[7] = uStack_270;
    iStack_2d8 = iStack_27c;
  }
  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)) {
    return 0x20;
  }
  pcVar19 = *(code **)(pcVar19 + 0x29184);
  puVar10 = puStack_26c;
  (*pcVar19)();
  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4);
  iVar18 = *(int *)(pcVar19 + 0x28da0);
  uVar11 = *(undefined4 *)(iVar18 + 0x76d4);
  uVar7 = *(undefined4 *)(iVar18 + 0x76d8);
  *puVar10 = *(undefined4 *)(iVar18 + 0x76d0);
  puVar10[1] = uVar11;
  puVar10[2] = uVar7;
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;
    *(undefined4 *)((int)puVar10 + 6) = 0;
    *(undefined1 *)((int)puVar10 + 10) = 0;
    *(undefined1 *)((int)puVar10 + 0xb) = 0;
  }
  else if (iStack_2d8 == 2) {
    iStack_2d8 = 0x1c0a0800;
    *puVar10 = 0x1c0a0800;
    puVar10[1] = 0;
    puVar10[2] = 0;
  }
  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)) {
    return 0xc;
  }
  pcVar19 = *(code **)(pcVar19 + 0x28f90);
  (*pcVar19)();
  iVar18 = **(int **)(pcVar19 + 0x28e80);
  iVar8 = *(int *)(pcVar19 + 0x28c5c);
  uVar11 = *(undefined4 *)(iVar8 + 0x76c4);
  uVar7 = *(undefined4 *)(iVar8 + 0x76c8);
  *puVar9 = *(undefined4 *)(iVar8 + 0x76c0);
  puVar9[1] = uVar11;
  puVar9[2] = uVar7;
  *(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc);
  *(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd);
  *(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce);
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;
    *(undefined4 *)((int)puVar9 + 6) = 0;
    *(undefined4 *)((int)puVar9 + 10) = 0;
    *(undefined1 *)((int)puVar9 + 0xe) = 0;
    *(undefined1 *)((int)puVar9 + 0xf) = 0;
  }
  else if (iStack_2d8 == 2) {
    *puVar9 = 0xe0000;
    puVar9[1] = 0;
    puVar9[2] = 0;
    puVar9[3] = 0;
  }
  if (iVar18 == **(int **)(pcVar19 + 0x28e80)) {
    return 0xf;
  }
  pcVar19 = *(code **)(pcVar19 + 0x28e4c);
  (*pcVar19)();
  return *(int *)(pcVar19 + 0x28ae8) + 0x25b0;
}



/* WARNING: Removing unreachable block (ram,0x0002e220) */
/* WARNING: Removing unreachable block (ram,0x0002e278) */
/* WARNING: Removing unreachable block (ram,0x0002e228) */
/* WARNING: Removing unreachable block (ram,0x0002e230) */
/* WARNING: Removing unreachable block (ram,0x0002e254) */
/* WARNING: Removing unreachable block (ram,0x0002e258) */
/* WARNING: Removing unreachable block (ram,0x0002df94) */
/* WARNING: Removing unreachable block (ram,0x0002e2c4) */

int sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,
                    byte param_6,byte *param_7)

{
  byte *pbVar1;
  uint uVar2;
  byte *pbVar3;
  byte *pbVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  byte *pbVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined *puVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  int unaff_s0;
  int iVar16;
  int iVar17;
  byte *unaff_s2;
  byte *unaff_s4;
  byte *unaff_s5;
  byte *unaff_s6;
  code *pcVar18;
  code *pcVar19;
  code *pcVar20;
  int iStack_2d8;
  undefined4 uStack_28c;
  undefined4 uStack_288;
  undefined4 uStack_284;
  undefined4 uStack_280;
  int iStack_27c;
  undefined4 uStack_278;
  undefined4 uStack_274;
  undefined4 uStack_270;
  undefined4 *puStack_26c;
  int iStack_264;
  int iStack_260;
  code *pcStack_25c;
  code *pcStack_248;
  undefined4 uStack_23c;
  undefined4 uStack_238;
  undefined1 uStack_234;
  undefined1 uStack_233;
  byte *pbStack_230;
  undefined4 uStack_22c;
  undefined4 uStack_228;
  undefined4 *puStack_224;
  code *pcStack_21c;
  code *pcStack_208;
  undefined4 uStack_1fc;
  undefined4 uStack_1f8;
  undefined4 uStack_1f4;
  undefined4 uStack_1f0;
  undefined4 *puStack_1ec;
  undefined4 uStack_1e4;
  byte *pbStack_1d0;
  uint uStack_1cc;
  uint uStack_1c8;
  uint *puStack_1c4;
  code *pcStack_1c0;
  uint uStack_1b4;
  byte abStack_1b0 [76];
  undefined4 *puStack_164;
  int iStack_160;
  int iStack_15c;
  undefined4 *puStack_158;
  byte *pbStack_154;
  byte *pbStack_150;
  byte *pbStack_14c;
  byte *pbStack_148;
  code *pcStack_144;
  byte *pbStack_130;
  uint uStack_12c;
  undefined1 *puStack_128;
  int *piStack_124;
  undefined *puStack_120;
  int iStack_118;
  byte *pbStack_114;
  byte abStack_110 [2];
  undefined1 auStack_10e [4];
  undefined1 uStack_10a;
  undefined1 uStack_109;
  undefined2 uStack_108;
  undefined1 uStack_106;
  undefined1 uStack_105;
  byte abStack_104 [64];
  int iStack_c4;
  int iStack_bc;
  int iStack_b8;
  byte *pbStack_b4;
  byte *pbStack_b0;
  byte *pbStack_ac;
  byte *pbStack_a8;
  code *pcStack_a4;
  byte *local_90;
  undefined4 *local_8c;
  byte *local_88;
  int *local_84;
  int local_78;
  byte *local_74;
  byte local_70 [2];
  undefined2 local_6e;
  undefined1 local_6c;
  undefined1 local_6b;
  undefined1 local_6a;
  undefined1 local_69;
  undefined1 local_68;
  undefined1 local_67;
  byte abStack_66 [2];
  byte abStack_64 [64];
  byte *local_24;
  
  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;
  local_70[0] = 0x46;
  local_70[1] = 0;
  local_6e = 0;
  local_6c = 0;
  local_6b = 0;
  local_6a = 0;
  local_69 = 0;
  local_68 = 0;
  local_67 = 0;
  if (param_2 < (byte *)0x4) {
    local_70[1] = (byte)param_2;
    pbVar3 = param_4;
    unaff_s4 = param_4;
    unaff_s5 = param_1;
    if (param_3 < (byte *)0x10000) {
      local_6e = SUB42(param_3,0);
      if (param_5 < (byte *)0x10000) {
        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);
        local_69 = (undefined1)((uint)param_5 >> 8);
        local_68 = SUB41(param_5,0);
        if (param_7 != (byte *)0x0) {
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);
          pbVar4 = local_70;
          unaff_s6 = abStack_66;
          unaff_s2 = PTR_LAB_0005783c + 0x511c;
          do {
            param_2 = (byte *)(uint)*pbVar4;
            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);
            pbVar4 = pbVar4 + 1;
          } while (pbVar4 != unaff_s6);
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);
        }
        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);
        if (unaff_s0 == 0) {
          iVar16 = -1;
        }
        else {
          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);
          unaff_s2 = abStack_64;
          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);
          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);
          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);
          local_84 = &local_78;
          local_88 = param_7;
          local_8c = (undefined4 *)(uint)param_6;
          param_2 = PTR_s__00057840 + 0x23e0;
          local_90 = unaff_s2;
          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);
          if (pbVar3 == (byte *)0xffffffff) {
            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);
            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);
          }
          else if (pbVar3 == (byte *)0xfffffffe) {
            if (local_78 - 5U < 0x11) {
                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */
                    /* WARNING: Treating indirect jump as call */
              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))
                       )();
              return iVar16;
            }
            iVar16 = -1;
          }
          else if ((int)param_7 < 3) {
            iVar16 = 0;
          }
          else {
            iVar16 = 0;
            if (3 < (int)pbVar3) {
              local_74 = *(byte **)param_4;
              param_2 = local_74;
              if ((int)local_74 < 0) {
                param_2 = (byte *)0x0;
              }
              if ((int)pbVar3 <= (int)param_2) {
                param_2 = pbVar3;
              }
              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);
              if (param_7 == (byte *)0x3) {
                if ((int)param_2 < 0x101) {
                  puVar12 = PTR_s__00057840 + 0x17b4;
                }
                else {
                  puVar12 = PTR_s__00057840 + 0x1b00;
                }
                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);
                param_3 = (byte *)0xffffffff;
                pbVar3 = (byte *)0x100;
                if ((int)param_2 < 0x101) {
                  pbVar3 = param_2;
                }
                (*(code *)PTR_hex2stderr_0005789c)(param_4);
                iVar16 = 0;
                param_2 = pbVar3;
              }
              else {
                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);
                param_3 = (byte *)0x0;
                (*(code *)PTR_hex2stderr_0005789c)(param_4);
                iVar16 = 0;
              }
            }
          }
          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);
          pbVar3 = param_5;
        }
      }
      else {
        pbVar4 = param_3;
        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);
        iVar16 = -1;
        param_2 = param_3;
        param_3 = pbVar4;
      }
    }
    else {
      pbVar4 = param_3;
      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);
      iVar16 = -1;
      param_2 = param_3;
      param_3 = pbVar4;
    }
  }
  else {
    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);
    iVar16 = -1;
    pbVar3 = param_4;
  }
  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {
    return iVar16;
  }
  pcVar18 = sg_ll_get_performance;
  pbVar9 = local_24;
  puVar12 = PTR___stack_chk_fail_00057a1c;
  (*(code *)PTR___stack_chk_fail_00057a1c)();
  puVar8 = local_8c;
  pbVar4 = local_90;
  puStack_120 = puVar12 + 0x31938;
  pcStack_a4 = pcVar18;
  pbStack_a8 = unaff_s5;
  pbStack_ac = unaff_s4;
  pbStack_b0 = param_7;
  pbStack_b4 = unaff_s2;
  iStack_b8 = iVar16;
  iStack_bc = unaff_s0;
  iStack_c4 = **(int **)(puVar12 + 0x29b78);
  abStack_110[0] = 0xac;
  abStack_110[1] = 0;
  auStack_10e[0] = 0;
  auStack_10e[1] = 0;
  auStack_10e[2] = 0;
  auStack_10e[3] = 0;
  uStack_10a = 0;
  uStack_109 = 0;
  uStack_108 = 0;
  uStack_106 = 0;
  uStack_105 = 0;
  if (param_2 < (byte *)0x20) {
    abStack_110[1] = (char)param_2;
    pbVar1 = abStack_110 + 2;
    uVar2 = (uint)pbVar1 & 3;
    *(uint *)(pbVar1 + -uVar2) =
         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;
    pbVar1 = abStack_110 + 5;
    uVar2 = (uint)pbVar1 & 3;
    *(uint *)(pbVar1 + -uVar2) =
         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |
         (int)param_3 << (3 - uVar2) * 8;
    param_7 = pbVar9;
    pbStack_114 = param_3;
    if (pbVar3 < (byte *)0x10000) {
      uStack_108 = SUB42(pbVar3,0);
      if (pbVar4 < (byte *)0x100) {
        uStack_106 = SUB41(pbVar4,0);
        (**(code **)(puVar12 + 0x29a14))
                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);
        pbVar4 = abStack_110;
        unaff_s5 = abStack_104;
        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);
        do {
          param_2 = (byte *)(uint)*pbVar4;
          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);
          pbVar4 = pbVar4 + 1;
        } while (pbVar4 != unaff_s5);
        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);
        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);
        if (unaff_s0 == 0) {
          iVar16 = -1;
        }
        else {
          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);
          unaff_s4 = abStack_104;
          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);
          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);
          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);
          piStack_124 = &iStack_118;
          puStack_128 = &_gp_1;
          uStack_12c = (uint)local_84 & 0xff;
          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);
          pbVar3 = local_88;
          pbStack_130 = unaff_s4;
          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);
          if (pbVar4 == (byte *)0xffffffff) {
            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);
            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);
          }
          else if (pbVar4 == (byte *)0xfffffffe) {
            if (iStack_118 - 5U < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar16 = (*(code *)(puStack_120 +
                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +
                                         (iStack_118 - 5U) * 4)))();
              return iVar16;
            }
            iVar16 = -1;
          }
          else {
            param_2 = *(byte **)(puStack_120 + -0x7fd0);
            if ((int)pbVar4 < 4) {
              iVar16 = 0;
            }
            else {
              pbStack_114 = (byte *)*puVar8;
              pbVar9 = pbStack_114;
              if ((int)pbStack_114 < 0) {
                pbVar9 = (byte *)0x0;
              }
              if ((int)pbVar4 <= (int)pbVar9) {
                pbVar9 = pbVar4;
              }
              (**(code **)(puStack_120 + -0x7f24))
                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);
              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);
              param_3 = (byte *)0x0;
              param_2 = pbVar9;
              (**(code **)(puStack_120 + -0x7f74))(puVar8);
              iVar16 = 0;
            }
          }
          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);
          param_7 = pbVar9;
        }
      }
      else {
        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);
        iVar16 = -1;
        param_2 = pbVar4;
      }
    }
    else {
      pbVar4 = pbVar3;
      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);
      iVar16 = -1;
      param_2 = pbVar3;
      pbVar3 = pbVar4;
    }
  }
  else {
    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);
    iVar16 = -1;
  }
  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {
    return iVar16;
  }
  pcVar18 = *(code **)(puStack_120 + -0x7df4);
  pcVar19 = sg_ll_set_streaming;
  iVar17 = iStack_c4;
  (*pcVar18)();
  uVar2 = uStack_12c;
  pcStack_1c0 = pcVar18 + 0x314e8;
  puStack_158 = puVar8;
  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);
  abStack_1b0[0] = 0xb6;
  abStack_1b0[1] = 0;
  abStack_1b0[2] = 0;
  abStack_1b0[3] = 0;
  abStack_1b0[4] = 0;
  abStack_1b0[5] = 0;
  abStack_1b0[6] = 0;
  abStack_1b0[7] = 0;
  abStack_1b0[0xb] = 0;
  abStack_1b0[8] = (byte)param_2;
  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);
  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);
  abStack_1b0[10] = (byte)pbVar3;
  iStack_160 = unaff_s0;
  iStack_15c = iVar16;
  pbStack_154 = param_7;
  pbStack_150 = unaff_s4;
  pbStack_14c = unaff_s5;
  pbStack_148 = unaff_s6;
  pcStack_144 = pcVar19;
  if (uStack_12c != 0) {
    (**(code **)(pcVar18 + 0x295c4))
              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);
    pbVar4 = abStack_1b0;
    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);
    do {
      param_2 = (byte *)(uint)*pbVar4;
      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);
      pbVar4 = pbVar4 + 1;
    } while (pbVar4 != abStack_1b0 + 0xc);
    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);
    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;
    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);
    if (pbVar3 != (byte *)0x0) {
      (**(code **)(pcStack_1c0 + -0x7f24))
                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);
      param_2 = pbVar3;
      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);
      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
      goto LAB_0002e3c0;
    }
  }
  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
LAB_0002e3c0:
  iVar16 = FUN_0002d790(iVar16 + 0x245c);
  if (iVar16 == 0) {
    iVar17 = -1;
  }
  else {
    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);
    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);
    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);
    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);
    puStack_1c4 = &uStack_1b4;
    uStack_1c8 = uVar2;
    uStack_1cc = (uint)pbStack_130 & 0xff;
    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);
    pbStack_1d0 = abStack_1b0 + 0xc;
    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);
    if (iVar6 == -1) {
      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);
      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);
    }
    else {
      iVar17 = 0;
      if (iVar6 == -2) {
        if (uStack_1b4 < 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          iVar16 = (*(pcStack_1c0 +
                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();
          return iVar16;
        }
        iVar17 = -1;
      }
    }
    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);
  }
  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {
    return iVar17;
  }
  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);
  uVar5 = 0x2e638;
  puVar8 = puStack_164;
  (*pcVar18)();
  pcStack_208 = pcVar18 + 0x311d0;
  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);
  uStack_1fc = 0x20e8080;
  uStack_1f8 = 0xa0000;
  uStack_1f4 = 0;
  uStack_1f0 = 0;
  *puVar8 = 0x20e8080;
  puVar8[1] = 0xa0000;
  puVar8[2] = 0;
  puVar8[3] = 0;
  if (param_2 == (byte *)0x1) {
    *(undefined1 *)((int)puVar8 + 2) = 0;
    *(undefined1 *)((int)puVar8 + 3) = 0;
    *(undefined1 *)(puVar8 + 1) = 0;
    *(undefined1 *)((int)puVar8 + 5) = 0;
    *(undefined1 *)((int)puVar8 + 6) = 0;
    *(undefined1 *)((int)puVar8 + 7) = 0;
    *(undefined1 *)(puVar8 + 2) = 0;
    *(undefined1 *)((int)puVar8 + 9) = 0;
    *(undefined1 *)((int)puVar8 + 10) = 0;
    *(undefined1 *)((int)puVar8 + 0xb) = 0;
    *(undefined1 *)(puVar8 + 3) = 0;
    *(undefined1 *)((int)puVar8 + 0xd) = 0;
    *(undefined1 *)((int)puVar8 + 0xe) = 0;
    *(undefined1 *)((int)puVar8 + 0xf) = 0;
  }
  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {
    return 0x10;
  }
  pcVar18 = *(code **)(pcVar18 + 0x293dc);
  pcVar19 = FUN_0002e758;
  puStack_1ec = puVar7;
  uStack_1e4 = uVar5;
  (*pcVar18)();
  pcStack_248 = pcVar18 + 0x310b8;
  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);
  iVar6 = *(int *)(pcVar18 + 0x290d4);
  uVar10 = *(undefined4 *)(iVar6 + 0x7700);
  uVar5 = *(undefined4 *)(iVar6 + 0x7704);
  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);
  puVar7[1] = uVar10;
  puVar7[2] = uVar5;
  if (param_2 == (byte *)0x1) {
    uStack_23c = 0x6000000;
    uStack_238 = 0;
    uStack_234 = 0;
    uStack_233 = 0;
    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;
    *(undefined4 *)((int)puVar7 + 6) = 0;
    *(undefined1 *)((int)puVar7 + 10) = 0;
    *(undefined1 *)((int)puVar7 + 0xb) = 0;
  }
  else if (param_2 == (byte *)0x2) {
    pbStack_230 = (byte *)0xa0a0200;
    uStack_22c = 0;
    uStack_228 = 0x24b;
    *puVar7 = 0xa0a0200;
    puVar7[1] = 0;
    puVar7[2] = 0x24b;
    param_2 = pbStack_230;
  }
  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {
    return 0xc;
  }
  pcVar18 = *(code **)(pcVar18 + 0x292c4);
  pcVar20 = FUN_0002e898;
  puStack_224 = puVar8;
  pcStack_21c = pcVar19;
  (*pcVar18)();
  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);
  iStack_264 = iVar16;
  iStack_260 = iVar17;
  pcStack_25c = pcVar20;
  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);
  iVar16 = *(int *)(pcVar18 + 0x28f94);
  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);
  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);
  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);
  iStack_2d8 = *(int *)(iVar16 + 0x76ec);
  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);
  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);
  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);
  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);
  puVar8[1] = uVar15;
  puVar8[2] = uVar14;
  puVar8[3] = uVar13;
  puVar8[4] = iStack_2d8;
  puVar8[5] = uVar11;
  puVar8[6] = uVar10;
  puVar8[7] = uVar5;
  if (param_2 == (byte *)0x1) {
    iStack_2d8 = 0;
    puVar8[1] = 0;
    puVar8[2] = 0;
    puVar8[3] = 0;
    puVar8[4] = 0;
    puVar8[5] = 0;
    puVar8[6] = 0;
    puVar8[7] = 0;
  }
  else if (param_2 == (byte *)0x2) {
    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));
    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);
    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);
    *puVar8 = uStack_28c;
    puVar8[1] = uStack_288;
    puVar8[2] = uStack_284;
    puVar8[3] = uStack_280;
    puVar8[4] = iStack_27c;
    puVar8[5] = uStack_278;
    puVar8[6] = uStack_274;
    puVar8[7] = uStack_270;
    iStack_2d8 = iStack_27c;
  }
  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {
    return 0x20;
  }
  pcVar18 = *(code **)(pcVar18 + 0x29184);
  puVar8 = puStack_26c;
  (*pcVar18)();
  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);
  iVar16 = *(int *)(pcVar18 + 0x28da0);
  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);
  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);
  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);
  puVar8[1] = uVar10;
  puVar8[2] = uVar5;
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;
    *(undefined4 *)((int)puVar8 + 6) = 0;
    *(undefined1 *)((int)puVar8 + 10) = 0;
    *(undefined1 *)((int)puVar8 + 0xb) = 0;
  }
  else if (iStack_2d8 == 2) {
    iStack_2d8 = 0x1c0a0800;
    *puVar8 = 0x1c0a0800;
    puVar8[1] = 0;
    puVar8[2] = 0;
  }
  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {
    return 0xc;
  }
  pcVar18 = *(code **)(pcVar18 + 0x28f90);
  (*pcVar18)();
  iVar16 = **(int **)(pcVar18 + 0x28e80);
  iVar17 = *(int *)(pcVar18 + 0x28c5c);
  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);
  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);
  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);
  puVar7[1] = uVar10;
  puVar7[2] = uVar5;
  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);
  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);
  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;
    *(undefined4 *)((int)puVar7 + 6) = 0;
    *(undefined4 *)((int)puVar7 + 10) = 0;
    *(undefined1 *)((int)puVar7 + 0xe) = 0;
    *(undefined1 *)((int)puVar7 + 0xf) = 0;
  }
  else if (iStack_2d8 == 2) {
    *puVar7 = 0xe0000;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
  }
  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {
    return 0xf;
  }
  pcVar18 = *(code **)(pcVar18 + 0x28e4c);
  (*pcVar18)();
  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;
}


lui gp,0x3
addiu gp,gp,0x1d8c
addu gp,gp,t9
addiu sp,sp,-0xa0
sw ra,0x9c(sp)
sw s6,0x98(sp)
sw s5,0x94(sp)
sw s4,0x90(sp)
sw s3,0x8c(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw s0,0x80(sp)
sw gp,0x20(sp)
lw s1,0xb0(sp)
lw s3,0xb8(sp)
lw v0,-0x7dc0(gp)
lw v0,0x0(v0)
sw v0,0x7c(sp)
li v0,0x46
sb v0,0x30(sp)
sb zero,0x31(sp)
sb zero,0x32(sp)
sb zero,0x33(sp)
sb zero,0x34(sp)
sb zero,0x35(sp)
sb zero,0x36(sp)
sb zero,0x37(sp)
sb zero,0x38(sp)
sltiu v0,a1,0x4
beq v0,zero,0x0002dc40
_sb zero,0x39(sp)
or s5,a0,zero
or s4,a3,zero
lui v0,0x1
sltu v0,a2,v0
beq v0,zero,0x0002dc60
_sb a1,0x31(sp)
lui v0,0x1
sltu v0,s1,v0
beq v0,zero,0x0002dc84
_sh a2,0x32(sp)
sh s1,0x2c(sp)
ext v0,s1,0x8,0x8
sb v0,0x37(sp)
bne s3,zero,0x0002dca8
_sb s1,0x38(sp)
lw a0,-0x7fd0(gp)
addiu a0,a0,0x23e0
lw t9,-0x7fd4(gp)
addiu t9,t9,-0x2870
bal 0x0002d790
_nop
lw gp,0x20(sp)
beq v0,zero,0x0002dec4
_or s0,v0,zero
li a2,0xa
addiu a1,sp,0x30
or a0,v0,zero
lw t9,-0x7fb0(gp)
jalr t9
_nop
lw gp,0x20(sp)
li a2,0x40
addiu s2,sp,0x3c
or a1,s2,zero
or a0,s0,zero
lw t9,-0x7f1c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a2,s1,zero
or a1,s4,zero
or a0,s0,zero
lw t9,-0x7d8c(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a3,s3,zero
li a2,0x3c
or a1,s5,zero
or a0,s0,zero
lw t9,-0x7e8c(gp)
jalr t9
_nop
lw gp,0x20(sp)
addiu v1,sp,0x28
sw v1,0x1c(sp)
sw s3,0x18(sp)
lbu v1,0xb7(sp)
sw v1,0x14(sp)
sw s2,0x10(sp)
or a3,s1,zero
or a2,v0,zero
lw a1,-0x7fd0(gp)
addiu a1,a1,0x23e0
or a0,s0,zero
lw t9,-0x7f40(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v1,-0x1
beq v0,v1,0x0002dd18
_li v1,-0x2
beq v0,v1,0x0002dd48
_slti v1,s3,0x3
bne v1,zero,0x0002de70
_slti v1,v0,0x4
beq v1,zero,0x0002dd80
_or s1,zero,zero
b 0x0002de78
_or a0,s0,zero
lw a0,-0x7fd0(gp)
addiu a0,a0,0x2390
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de88
_li s1,-0x1
or a1,a2,zero
lw a0,-0x7fd0(gp)
addiu a0,a0,0x23a4
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de88
_li s1,-0x1
or a1,a2,zero
lw a0,-0x7fd0(gp)
addiu a0,a0,0x23c8
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de88
_li s1,-0x1
lw a1,-0x7fd0(gp)
addiu a1,a1,0x23e0
lw a0,-0x7fd0(gp)
addiu a0,a0,0x17c0
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
addiu s0,sp,0x30
addiu s6,sp,0x3a
lw s2,-0x7fd4(gp)
addiu s2,s2,0x511c
lbu a1,0x0(s0)
or a0,s2,zero
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
addiu s0,s0,0x1
bne s0,s6,0x0002dcd8
_lw a0,-0x7fd0(gp)
addiu a0,a0,0x29c4
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002db40
_lw a0,-0x7fd0(gp)
or a0,s0,zero
lw t9,-0x7d70(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a0,v0,zero
lw t9,-0x7ee8(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de74
_or s1,v0,zero
lw s1,0x28(sp)
addiu v0,s1,-0x5
sltiu v1,v0,0x11
beq v1,zero,0x0002dd78
_sll v1,v0,0x2
lw v0,-0x7fd0(gp)
addiu v0,v0,0x24c8
addu v0,v0,v1
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
b 0x0002de74
_li s1,-0x1
lwl v1,0x0(s4)
lwr v1,0x3(s4)
sw v1,0x2c(sp)
slti s1,v1,0x0
movn v1,zero,s1
slt s1,v1,v0
movz v1,v0,s1
or s1,v1,zero
lw a1,-0x7fd0(gp)
addiu a1,a1,0x23e0
lw a0,-0x7fd0(gp)
addiu a0,a0,0x23f4
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
li v0,0x3
bne s3,v0,0x0002de2c
_slti v0,s1,0x101
beq v0,zero,0x0002de24
_lw a1,-0x7fd0(gp)
lw a1,-0x7fd0(gp)
addiu a1,a1,0x17b4
lw a0,-0x7fd4(gp)
addiu a0,a0,0x55c4
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
slti a1,s1,0x101
li a2,-0x1
li v0,0x100
movn v0,s1,a1
or a1,v0,zero
or a0,s4,zero
lw t9,-0x7f74(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de74
_or s1,zero,zero
b 0x0002dddc
_addiu a1,a1,0x1b00
lw a0,-0x7fd0(gp)
addiu a0,a0,0x2e44
lw t9,-0x7f24(gp)
jalr t9
_nop
lw gp,0x20(sp)
or a2,zero,zero
or a1,s1,zero
or a0,s4,zero
lw t9,-0x7f74(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0002de74
_or s1,zero,zero
b 0x0002de74
_or s1,zero,zero
or s1,zero,zero
or a0,s0,zero
lw t9,-0x7ea4(gp)
jalr t9
_nop
lw gp,0x20(sp)
or v0,s1,zero
lw a0,0x7c(sp)
lw v1,-0x7dc0(gp)
lw v1,0x0(v1)
bne a0,v1,0x0002decc
_lw ra,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,0xa0
b 0x0002de88
_li s1,-0x1
lw t9,-0x7df4(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0002e220) */\n/* WARNING: Removing unreachable block (ram,0x0002e278) */\n/* WARNING: Removing unreachable block (ram,0x0002e228) */\n/* WARNING: Removing unreachable block (ram,0x0002e230) */\n/* WARNING: Removing unreachable block (ram,0x0002e254) */\n/* WARNING: Removing unreachable block (ram,0x0002e258) */\n/* WARNING: Removing unreachable block (ram,0x0002df94) */\n/* WARNING: Removing unreachable block (ram,0x0002e2c4) */\n\nint sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "int sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" primitive_type (function_declarator "sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" identifier (parameter_list "(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "byte param_6" type_identifier identifier) , (parameter_declaration "byte *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iStack_2d8;" primitive_type identifier ;) (declaration "undefined4 uStack_28c;" type_identifier identifier ;) (declaration "undefined4 uStack_288;" type_identifier identifier ;) (declaration "undefined4 uStack_284;" type_identifier identifier ;) (declaration "undefined4 uStack_280;" type_identifier identifier ;) (declaration "int iStack_27c;" primitive_type identifier ;) (declaration "undefined4 uStack_278;" type_identifier identifier ;) (declaration "undefined4 uStack_274;" type_identifier identifier ;) (declaration "undefined4 uStack_270;" type_identifier identifier ;) (declaration "undefined4 *puStack_26c;" type_identifier (pointer_declarator "*puStack_26c" * identifier) ;) (declaration "int iStack_264;" primitive_type identifier ;) (declaration "int iStack_260;" primitive_type identifier ;) (declaration "code *pcStack_25c;" type_identifier (pointer_declarator "*pcStack_25c" * identifier) ;) (declaration "code *pcStack_248;" type_identifier (pointer_declarator "*pcStack_248" * identifier) ;) (declaration "undefined4 uStack_23c;" type_identifier identifier ;) (declaration "undefined4 uStack_238;" type_identifier identifier ;) (declaration "undefined1 uStack_234;" type_identifier identifier ;) (declaration "undefined1 uStack_233;" type_identifier identifier ;) (declaration "byte *pbStack_230;" type_identifier (pointer_declarator "*pbStack_230" * identifier) ;) (declaration "undefined4 uStack_22c;" type_identifier identifier ;) (declaration "undefined4 uStack_228;" type_identifier identifier ;) (declaration "undefined4 *puStack_224;" type_identifier (pointer_declarator "*puStack_224" * identifier) ;) (declaration "code *pcStack_21c;" type_identifier (pointer_declarator "*pcStack_21c" * identifier) ;) (declaration "code *pcStack_208;" type_identifier (pointer_declarator "*pcStack_208" * identifier) ;) (declaration "undefined4 uStack_1fc;" type_identifier identifier ;) (declaration "undefined4 uStack_1f8;" type_identifier identifier ;) (declaration "undefined4 uStack_1f4;" type_identifier identifier ;) (declaration "undefined4 uStack_1f0;" type_identifier identifier ;) (declaration "undefined4 *puStack_1ec;" type_identifier (pointer_declarator "*puStack_1ec" * identifier) ;) (declaration "undefined4 uStack_1e4;" type_identifier identifier ;) (declaration "byte *pbStack_1d0;" type_identifier (pointer_declarator "*pbStack_1d0" * identifier) ;) (declaration "uint uStack_1cc;" type_identifier identifier ;) (declaration "uint uStack_1c8;" type_identifier identifier ;) (declaration "uint *puStack_1c4;" type_identifier (pointer_declarator "*puStack_1c4" * identifier) ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "uint uStack_1b4;" type_identifier identifier ;) (declaration "byte abStack_1b0 [76];" type_identifier (array_declarator "abStack_1b0 [76]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "int iStack_160;" primitive_type identifier ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "undefined4 *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "byte *pbStack_154;" type_identifier (pointer_declarator "*pbStack_154" * identifier) ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "byte *pbStack_14c;" type_identifier (pointer_declarator "*pbStack_14c" * identifier) ;) (declaration "byte *pbStack_148;" type_identifier (pointer_declarator "*pbStack_148" * identifier) ;) (declaration "code *pcStack_144;" type_identifier (pointer_declarator "*pcStack_144" * identifier) ;) (declaration "byte *pbStack_130;" type_identifier (pointer_declarator "*pbStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "undefined1 *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "int *piStack_124;" primitive_type (pointer_declarator "*piStack_124" * identifier) ;) (declaration "undefined *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "byte *pbStack_114;" type_identifier (pointer_declarator "*pbStack_114" * identifier) ;) (declaration "byte abStack_110 [2];" type_identifier (array_declarator "abStack_110 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_10e [4];" type_identifier (array_declarator "auStack_10e [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_10a;" type_identifier identifier ;) (declaration "undefined1 uStack_109;" type_identifier identifier ;) (declaration "undefined2 uStack_108;" type_identifier identifier ;) (declaration "undefined1 uStack_106;" type_identifier identifier ;) (declaration "undefined1 uStack_105;" type_identifier identifier ;) (declaration "byte abStack_104 [64];" type_identifier (array_declarator "abStack_104 [64]" identifier [ number_literal ]) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "byte *pbStack_b4;" type_identifier (pointer_declarator "*pbStack_b4" * identifier) ;) (declaration "byte *pbStack_b0;" type_identifier (pointer_declarator "*pbStack_b0" * identifier) ;) (declaration "byte *pbStack_ac;" type_identifier (pointer_declarator "*pbStack_ac" * identifier) ;) (declaration "byte *pbStack_a8;" type_identifier (pointer_declarator "*pbStack_a8" * identifier) ;) (declaration "code *pcStack_a4;" type_identifier (pointer_declarator "*pcStack_a4" * identifier) ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined4 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "byte *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "byte *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "byte local_70 [2];" type_identifier (array_declarator "local_70 [2]" identifier [ number_literal ]) ;) (declaration "undefined2 local_6e;" type_identifier identifier ;) (declaration "undefined1 local_6c;" type_identifier identifier ;) (declaration "undefined1 local_6b;" type_identifier identifier ;) (declaration "undefined1 local_6a;" type_identifier identifier ;) (declaration "undefined1 local_69;" type_identifier identifier ;) (declaration "undefined1 local_68;" type_identifier identifier ;) (declaration "undefined1 local_67;" type_identifier identifier ;) (declaration "byte abStack_66 [2];" type_identifier (array_declarator "abStack_66 [2]" identifier [ number_literal ]) ;) (declaration "byte abStack_64 [64];" type_identifier (array_declarator "abStack_64 [64]" identifier [ number_literal ]) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "local_24 = *(byte **)PTR___stack_chk_guard_00057a50;" (assignment_expression "local_24 = *(byte **)PTR___stack_chk_guard_00057a50" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" * (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_70[0] = 0x46;" (assignment_expression "local_70[0] = 0x46" (subscript_expression "local_70[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_70[1] = 0;" (assignment_expression "local_70[1] = 0" (subscript_expression "local_70[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6e = 0;" (assignment_expression "local_6e = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_6b = 0;" (assignment_expression "local_6b = 0" identifier = number_literal) ;) (expression_statement "local_6a = 0;" (assignment_expression "local_6a = 0" identifier = number_literal) ;) (expression_statement "local_69 = 0;" (assignment_expression "local_69 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_67 = 0;" (assignment_expression "local_67 = 0" identifier = number_literal) ;) (if_statement "if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" if (parenthesized_expression "(param_2 < (byte *)0x4)" ( (binary_expression "param_2 < (byte *)0x4" identifier < (cast_expression "(byte *)0x4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }" { (expression_statement "local_70[1] = (byte)param_2;" (assignment_expression "local_70[1] = (byte)param_2" (subscript_expression "local_70[1]" identifier [ number_literal ]) = (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" identifier = identifier) ;) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" if (parenthesized_expression "(param_3 < (byte *)0x10000)" ( (binary_expression "param_3 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }" { (expression_statement "local_6e = SUB42(param_3,0);" (assignment_expression "local_6e = SUB42(param_3,0)" identifier = (call_expression "SUB42(param_3,0)" identifier (argument_list "(param_3,0)" ( identifier , number_literal )))) ;) (if_statement "if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" if (parenthesized_expression "(param_5 < (byte *)0x10000)" ( (binary_expression "param_5 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }" { (expression_statement "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);" (assignment_expression "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_)" identifier = (cast_expression "(byte *)CONCAT22((short)param_5,local_74._2_2_)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22((short)param_5,local_74._2_2_)" identifier (argument_list "((short)param_5,local_74._2_2_)" ( (cast_expression "(short)param_5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "local_74._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "local_69 = (undefined1)((uint)param_5 >> 8);" (assignment_expression "local_69 = (undefined1)((uint)param_5 >> 8)" identifier = (call_expression "(undefined1)((uint)param_5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_5 >> 8)" ( (binary_expression "(uint)param_5 >> 8" (cast_expression "(uint)param_5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_68 = SUB41(param_5,0);" (assignment_expression "local_68 = SUB41(param_5,0)" identifier = (call_expression "SUB41(param_5,0)" identifier (argument_list "(param_5,0)" ( identifier , number_literal )))) ;) (if_statement "if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" if (parenthesized_expression "(param_7 != (byte *)0x0)" ( (binary_expression "param_7 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x17c0" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (expression_statement "pbVar4 = local_70;" (assignment_expression "pbVar4 = local_70" identifier = identifier) ;) (expression_statement "unaff_s6 = abStack_66;" (assignment_expression "unaff_s6 = abStack_66" identifier = identifier) ;) (expression_statement "unaff_s2 = PTR_LAB_0005783c + 0x511c;" (assignment_expression "unaff_s2 = PTR_LAB_0005783c + 0x511c" identifier = (binary_expression "PTR_LAB_0005783c + 0x511c" identifier + number_literal)) ;) (do_statement "do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);" do (compound_statement "{\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(unaff_s2);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != unaff_s6)" ( (binary_expression "pbVar4 != unaff_s6" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x29c4)" ( (binary_expression "PTR_s__00057840 + 0x29c4" identifier + number_literal) ))) ;) })) (expression_statement "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);" (assignment_expression "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0)" identifier = (call_expression "FUN_0002d790(PTR_s__00057840 + 0x23e0)" identifier (argument_list "(PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) )))) ;) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" if (parenthesized_expression "(unaff_s0 == 0)" ( (binary_expression "unaff_s0 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = -1;\n        }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" else (compound_statement "{\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00057860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00057860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,local_70,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s2 = abStack_64;" (assignment_expression "unaff_s2 = abStack_64" identifier = identifier) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000578f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000578f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,unaff_s2,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00057a84" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00057a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);" (assignment_expression "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" identifier = (cast_expression "(byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00057984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00057984" * (cast_expression "(code *)PTR_do_scsi_pt_00057984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,param_1,0x3c,param_7)" ( identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "local_84 = &local_78;" (assignment_expression "local_84 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_88 = param_7;" (assignment_expression "local_88 = param_7" identifier = identifier) ;) (expression_statement "local_8c = (undefined4 *)(uint)param_6;" (assignment_expression "local_8c = (undefined4 *)(uint)param_6" identifier = (cast_expression "(undefined4 *)(uint)param_6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "param_2 = PTR_s__00057840 + 0x23e0;" (assignment_expression "param_2 = PTR_s__00057840 + 0x23e0" identifier = (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal)) ;) (expression_statement "local_90 = unaff_s2;" (assignment_expression "local_90 = unaff_s2" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" identifier = (cast_expression "(byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000578d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000578d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pbVar3 == (byte *)0xffffffff)" ( (binary_expression "pbVar3 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }" { (expression_statement "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);" (assignment_expression "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00057aa0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00057aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);" (assignment_expression "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00057928)(uVar5)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00057928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00057928" * (cast_expression "(code *)PTR_sg_convert_errno_00057928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (if_statement "if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pbVar3 == (byte *)0xfffffffe)" ( (binary_expression "pbVar3 == (byte *)0xfffffffe" identifier == (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" { (if_statement "if (local_78 - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" if (parenthesized_expression "(local_78 - 5U < 0x11)" ( (binary_expression "local_78 - 5U < 0x11" (binary_expression "local_78 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" { comment comment (expression_statement "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();" (assignment_expression "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" ( (binary_expression "&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" * (cast_expression "(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" ( (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8" (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4" identifier + (binary_expression "(local_78 - 5U) * 4" (parenthesized_expression "(local_78 - 5U)" ( (binary_expression "local_78 - 5U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (if_statement "if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "((int)param_7 < 3)" ( (binary_expression "(int)param_7 < 3" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            iVar16 = 0;\n          }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" if (parenthesized_expression "(3 < (int)pbVar3)" ( (binary_expression "3 < (int)pbVar3" number_literal < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" { (expression_statement "local_74 = *(byte **)param_4;" (assignment_expression "local_74 = *(byte **)param_4" identifier = (pointer_expression "*(byte **)param_4" * (cast_expression "(byte **)param_4" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "param_2 = local_74;" (assignment_expression "param_2 = local_74" identifier = identifier) ;) (if_statement "if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }" if (parenthesized_expression "((int)local_74 < 0)" ( (binary_expression "(int)local_74 < 0" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                param_2 = (byte *)0x0;\n              }" { (expression_statement "param_2 = (byte *)0x0;" (assignment_expression "param_2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }" if (parenthesized_expression "((int)pbVar3 <= (int)param_2)" ( (binary_expression "(int)pbVar3 <= (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                param_2 = pbVar3;\n              }" { (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23f4" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (if_statement "if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" if (parenthesized_expression "(param_7 == (byte *)0x3)" ( (binary_expression "param_7 == (byte *)0x3" identifier == (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }" { (if_statement "if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" if (parenthesized_expression "((int)param_2 < 0x101)" ( (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }" { (expression_statement "puVar12 = PTR_s__00057840 + 0x17b4;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x17b4" identifier = (binary_expression "PTR_s__00057840 + 0x17b4" identifier + number_literal)) ;) }) (else_clause "else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" else (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" { (expression_statement "puVar12 = PTR_s__00057840 + 0x1b00;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x1b00" identifier = (binary_expression "PTR_s__00057840 + 0x1b00" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005783c + 0x55c4,puVar12)" ( (binary_expression "PTR_LAB_0005783c + 0x55c4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_3 = (byte *)0xffffffff;" (assignment_expression "param_3 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar3 = (byte *)0x100;" (assignment_expression "pbVar3 = (byte *)0x100" identifier = (cast_expression "(byte *)0x100" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }" if (parenthesized_expression "((int)param_2 < 0x101)" ( (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  pbVar3 = param_2;\n                }" { (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) }) (else_clause "else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" else (compound_statement "{\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2e44)" ( (binary_expression "PTR_s__00057840 + 0x2e44" identifier + number_literal) ))) ;) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) })) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005796c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005796c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "pbVar3 = param_5;" (assignment_expression "pbVar3 = param_5" identifier = identifier) ;) }))) }) (else_clause "else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" else (compound_statement "{\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" { (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23c8)" ( (binary_expression "PTR_s__00057840 + 0x23c8" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" else (compound_statement "{\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" { (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23a4)" ( (binary_expression "PTR_s__00057840 + 0x23a4" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" else (compound_statement "{\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2390)" ( (binary_expression "PTR_s__00057840 + 0x2390" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" identifier = identifier) ;) }))) (if_statement "if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }" if (parenthesized_expression "(local_24 == *(byte **)PTR___stack_chk_guard_00057a50)" ( (binary_expression "local_24 == *(byte **)PTR___stack_chk_guard_00057a50" identifier == (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" * (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar16;\n  }" { (return_statement "return iVar16;" return identifier ;) })) (expression_statement "pcVar18 = sg_ll_get_performance;" (assignment_expression "pcVar18 = sg_ll_get_performance" identifier = identifier) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_00057a1c;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00057a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00057a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00057a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00057a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00057a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00057a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = local_8c;" (assignment_expression "puVar8 = local_8c" identifier = identifier) ;) (expression_statement "pbVar4 = local_90;" (assignment_expression "pbVar4 = local_90" identifier = identifier) ;) (expression_statement "puStack_120 = puVar12 + 0x31938;" (assignment_expression "puStack_120 = puVar12 + 0x31938" identifier = (binary_expression "puVar12 + 0x31938" identifier + number_literal)) ;) (expression_statement "pcStack_a4 = pcVar18;" (assignment_expression "pcStack_a4 = pcVar18" identifier = identifier) ;) (expression_statement "pbStack_a8 = unaff_s5;" (assignment_expression "pbStack_a8 = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_ac = unaff_s4;" (assignment_expression "pbStack_ac = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_b0 = param_7;" (assignment_expression "pbStack_b0 = param_7" identifier = identifier) ;) (expression_statement "pbStack_b4 = unaff_s2;" (assignment_expression "pbStack_b4 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_b8 = iVar16;" (assignment_expression "iStack_b8 = iVar16" identifier = identifier) ;) (expression_statement "iStack_bc = unaff_s0;" (assignment_expression "iStack_bc = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_c4 = **(int **)(puVar12 + 0x29b78);" (assignment_expression "iStack_c4 = **(int **)(puVar12 + 0x29b78)" identifier = (pointer_expression "**(int **)(puVar12 + 0x29b78)" * (pointer_expression "*(int **)(puVar12 + 0x29b78)" * (cast_expression "(int **)(puVar12 + 0x29b78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29b78)" ( (binary_expression "puVar12 + 0x29b78" identifier + number_literal) )))))) ;) (expression_statement "abStack_110[0] = 0xac;" (assignment_expression "abStack_110[0] = 0xac" (subscript_expression "abStack_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_110[1] = 0;" (assignment_expression "abStack_110[1] = 0" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[0] = 0;" (assignment_expression "auStack_10e[0] = 0" (subscript_expression "auStack_10e[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[1] = 0;" (assignment_expression "auStack_10e[1] = 0" (subscript_expression "auStack_10e[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[2] = 0;" (assignment_expression "auStack_10e[2] = 0" (subscript_expression "auStack_10e[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[3] = 0;" (assignment_expression "auStack_10e[3] = 0" (subscript_expression "auStack_10e[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_10a = 0;" (assignment_expression "uStack_10a = 0" identifier = number_literal) ;) (expression_statement "uStack_109 = 0;" (assignment_expression "uStack_109 = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_106 = 0;" (assignment_expression "uStack_106 = 0" identifier = number_literal) ;) (expression_statement "uStack_105 = 0;" (assignment_expression "uStack_105 = 0" identifier = number_literal) ;) (if_statement "if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" if (parenthesized_expression "(param_2 < (byte *)0x20)" ( (binary_expression "param_2 < (byte *)0x20" identifier < (cast_expression "(byte *)0x20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }" { (expression_statement "abStack_110[1] = (char)param_2;" (assignment_expression "abStack_110[1] = (char)param_2" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar1 = abStack_110 + 2;" (assignment_expression "pbVar1 = abStack_110 + 2" identifier = (binary_expression "abStack_110 + 2" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" identifier = (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "-1 << (4 - uVar2) * 8" number_literal << (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)param_3 >> uVar2 * 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar2 * 8" identifier * number_literal)))) ;) (expression_statement "pbVar1 = abStack_110 + 5;" (assignment_expression "pbVar1 = abStack_110 + 5" identifier = (binary_expression "abStack_110 + 5" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" identifier = (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" number_literal >> (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)param_3 << (3 - uVar2) * 8" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" ( (binary_expression "3 - uVar2" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" identifier = identifier) ;) (expression_statement "pbStack_114 = param_3;" (assignment_expression "pbStack_114 = param_3" identifier = identifier) ;) (if_statement "if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" if (parenthesized_expression "(pbVar3 < (byte *)0x10000)" ( (binary_expression "pbVar3 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }" { (expression_statement "uStack_108 = SUB42(pbVar3,0);" (assignment_expression "uStack_108 = SUB42(pbVar3,0)" identifier = (call_expression "SUB42(pbVar3,0)" identifier (argument_list "(pbVar3,0)" ( identifier , number_literal )))) ;) (if_statement "if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" if (parenthesized_expression "(pbVar4 < (byte *)0x100)" ( (binary_expression "pbVar4 < (byte *)0x100" identifier < (cast_expression "(byte *)0x100" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }" { (expression_statement "uStack_106 = SUB41(pbVar4,0);" (assignment_expression "uStack_106 = SUB41(pbVar4,0)" identifier = (call_expression "SUB41(pbVar4,0)" identifier (argument_list "(pbVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);" (call_expression "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x17c0" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar12 + 0x29968) + 0x244c" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar4 = abStack_110;" (assignment_expression "pbVar4 = abStack_110" identifier = identifier) ;) (expression_statement "unaff_s5 = abStack_104;" (assignment_expression "unaff_s5 = abStack_104" identifier = identifier) ;) (expression_statement "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);" (assignment_expression "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" identifier = (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd4) + 0x511c" (pointer_expression "*(int *)(puStack_120 + -0x7fd4)" * (cast_expression "(int *)(puStack_120 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd4)" ( (binary_expression "puStack_120 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);" do (compound_statement "{\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(unaff_s4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != unaff_s5)" ( (binary_expression "pbVar4 != unaff_s5" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier = (call_expression "FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" if (parenthesized_expression "(unaff_s0 == 0)" ( (binary_expression "unaff_s0 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = -1;\n        }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" else (compound_statement "{\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" { (expression_statement "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);" (call_expression "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_120 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_120 + -0x7fb0)" * (cast_expression "(code **)(puStack_120 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7fb0)" ( (binary_expression "puStack_120 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,abStack_110,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s4 = abStack_104;" (assignment_expression "unaff_s4 = abStack_104" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);" (call_expression "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_120 + -0x7f1c)" * (cast_expression "(code **)(puStack_120 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f1c)" ( (binary_expression "puStack_120 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);" (call_expression "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7d8c)" * (cast_expression "(code **)(puStack_120 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d8c)" ( (binary_expression "puStack_120 + -0x7d8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,puVar8,local_88)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);" (assignment_expression "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" identifier = (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7e8c)" * (cast_expression "(code **)(puStack_120 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7e8c)" ( (binary_expression "puStack_120 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,pbVar9,0x3c,&_gp_1)" ( identifier , identifier , number_literal , (pointer_expression "&_gp_1" & identifier) ))))) ;) (expression_statement "piStack_124 = &iStack_118;" (assignment_expression "piStack_124 = &iStack_118" identifier = (pointer_expression "&iStack_118" & identifier)) ;) (expression_statement "puStack_128 = &_gp_1;" (assignment_expression "puStack_128 = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "uStack_12c = (uint)local_84 & 0xff;" (assignment_expression "uStack_12c = (uint)local_84 & 0xff" identifier = (binary_expression "(uint)local_84 & 0xff" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier = (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar3 = local_88;" (assignment_expression "pbVar3 = local_88" identifier = identifier) ;) (expression_statement "pbStack_130 = unaff_s4;" (assignment_expression "pbStack_130 = unaff_s4" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" identifier = (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f40)" * (pointer_expression "*(code **)(puStack_120 + -0x7f40)" * (cast_expression "(code **)(puStack_120 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f40)" ( (binary_expression "puStack_120 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" if (parenthesized_expression "(pbVar4 == (byte *)0xffffffff)" ( (binary_expression "pbVar4 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }" { (expression_statement "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);" (assignment_expression "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7d70))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d70))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d70)" * (pointer_expression "*(code **)(puStack_120 + -0x7d70)" * (cast_expression "(code **)(puStack_120 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d70)" ( (binary_expression "puStack_120 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);" (assignment_expression "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_120 + -0x7ee8)" * (cast_expression "(code **)(puStack_120 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ee8)" ( (binary_expression "puStack_120 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" else (if_statement "if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" if (parenthesized_expression "(pbVar4 == (byte *)0xfffffffe)" ( (binary_expression "pbVar4 == (byte *)0xfffffffe" identifier == (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" { (if_statement "if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" if (parenthesized_expression "(iStack_118 - 5U < 0x11)" ( (binary_expression "iStack_118 - 5U < 0x11" (binary_expression "iStack_118 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" { comment comment (expression_statement "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();" (assignment_expression "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" identifier = (call_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" (parenthesized_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))" ( (pointer_expression "*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" * (cast_expression "(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (binary_expression "puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" * (cast_expression "(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4" (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "(iStack_118 - 5U) * 4" (parenthesized_expression "(iStack_118 - 5U)" ( (binary_expression "iStack_118 - 5U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" else (compound_statement "{\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" { (expression_statement "param_2 = *(byte **)(puStack_120 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(puStack_120 + -0x7fd0)" identifier = (pointer_expression "*(byte **)(puStack_120 + -0x7fd0)" * (cast_expression "(byte **)(puStack_120 + -0x7fd0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" if (parenthesized_expression "((int)pbVar4 < 4)" ( (binary_expression "(int)pbVar4 < 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar16 = 0;\n            }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" else (compound_statement "{\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" { (expression_statement "pbStack_114 = (byte *)*puVar8;" (assignment_expression "pbStack_114 = (byte *)*puVar8" identifier = (cast_expression "(byte *)*puVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "pbVar9 = pbStack_114;" (assignment_expression "pbVar9 = pbStack_114" identifier = identifier) ;) (if_statement "if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }" if (parenthesized_expression "((int)pbStack_114 < 0)" ( (binary_expression "(int)pbStack_114 < 0" (cast_expression "(int)pbStack_114" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)0x0;\n              }" { (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }" if (parenthesized_expression "((int)pbVar4 <= (int)pbVar9)" ( (binary_expression "(int)pbVar4 <= (int)pbVar9" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar9 = pbVar4;\n              }" { (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);" (call_expression "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x1b3c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "param_2 + 0x244c" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x2e44" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = pbVar9;" (assignment_expression "param_2 = pbVar9" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f74))(puVar8);" (call_expression "(**(code **)(puStack_120 + -0x7f74))(puVar8)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f74)" * (pointer_expression "*(code **)(puStack_120 + -0x7f74)" * (cast_expression "(code **)(puStack_120 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f74)" ( (binary_expression "puStack_120 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) }))))) (expression_statement "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0);" (call_expression "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_120 + -0x7ea4)" * (cast_expression "(code **)(puStack_120 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ea4)" ( (binary_expression "puStack_120 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" else (compound_statement "{\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" { (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x243c)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x243c" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = pbVar4;" (assignment_expression "param_2 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" else (compound_statement "{\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" { (expression_statement "pbVar4 = pbVar3;" (assignment_expression "pbVar4 = pbVar3" identifier = identifier) ;) (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2424)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2424" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" else (compound_statement "{\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" { (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2408)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2408" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }))) (if_statement "if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }" if (parenthesized_expression "(iStack_c4 == **(int **)(puStack_120 + -0x7dc0))" ( (binary_expression "iStack_c4 == **(int **)(puStack_120 + -0x7dc0)" identifier == (pointer_expression "**(int **)(puStack_120 + -0x7dc0)" * (pointer_expression "*(int **)(puStack_120 + -0x7dc0)" * (cast_expression "(int **)(puStack_120 + -0x7dc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7dc0)" ( (binary_expression "puStack_120 + -0x7dc0" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar16;\n  }" { (return_statement "return iVar16;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(puStack_120 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(puStack_120 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_120 + -0x7df4)" * (cast_expression "(code **)(puStack_120 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7df4)" ( (binary_expression "puStack_120 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = sg_ll_set_streaming;" (assignment_expression "pcVar19 = sg_ll_set_streaming" identifier = identifier) ;) (expression_statement "iVar17 = iStack_c4;" (assignment_expression "iVar17 = iStack_c4" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = uStack_12c;" (assignment_expression "uVar2 = uStack_12c" identifier = identifier) ;) (expression_statement "pcStack_1c0 = pcVar18 + 0x314e8;" (assignment_expression "pcStack_1c0 = pcVar18 + 0x314e8" identifier = (binary_expression "pcVar18 + 0x314e8" identifier + number_literal)) ;) (expression_statement "puStack_158 = puVar8;" (assignment_expression "puStack_158 = puVar8" identifier = identifier) ;) (expression_statement "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);" (assignment_expression "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29728)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29728)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29728)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29728)" ( (binary_expression "pcVar18 + 0x29728" identifier + number_literal) ))))))) ;) (expression_statement "abStack_1b0[0] = 0xb6;" (assignment_expression "abStack_1b0[0] = 0xb6" (subscript_expression "abStack_1b0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[1] = 0;" (assignment_expression "abStack_1b0[1] = 0" (subscript_expression "abStack_1b0[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[2] = 0;" (assignment_expression "abStack_1b0[2] = 0" (subscript_expression "abStack_1b0[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[3] = 0;" (assignment_expression "abStack_1b0[3] = 0" (subscript_expression "abStack_1b0[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[4] = 0;" (assignment_expression "abStack_1b0[4] = 0" (subscript_expression "abStack_1b0[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[5] = 0;" (assignment_expression "abStack_1b0[5] = 0" (subscript_expression "abStack_1b0[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[6] = 0;" (assignment_expression "abStack_1b0[6] = 0" (subscript_expression "abStack_1b0[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[7] = 0;" (assignment_expression "abStack_1b0[7] = 0" (subscript_expression "abStack_1b0[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[0xb] = 0;" (assignment_expression "abStack_1b0[0xb] = 0" (subscript_expression "abStack_1b0[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[8] = (byte)param_2;" (assignment_expression "abStack_1b0[8] = (byte)param_2" (subscript_expression "abStack_1b0[8]" identifier [ number_literal ]) = (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);" (assignment_expression "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_)" identifier = (call_expression "CONCAT22((short)pbVar3,uStack_1b4._2_2_)" identifier (argument_list "((short)pbVar3,uStack_1b4._2_2_)" ( (cast_expression "(short)pbVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "uStack_1b4._2_2_" identifier . field_identifier) )))) ;) (expression_statement "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);" (assignment_expression "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8)" (subscript_expression "abStack_1b0[9]" identifier [ number_literal ]) = (call_expression "(byte)((uint)pbVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)pbVar3 >> 8)" ( (binary_expression "(uint)pbVar3 >> 8" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "abStack_1b0[10] = (byte)pbVar3;" (assignment_expression "abStack_1b0[10] = (byte)pbVar3" (subscript_expression "abStack_1b0[10]" identifier [ number_literal ]) = (cast_expression "(byte)pbVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iStack_160 = unaff_s0;" (assignment_expression "iStack_160 = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_15c = iVar16;" (assignment_expression "iStack_15c = iVar16" identifier = identifier) ;) (expression_statement "pbStack_154 = param_7;" (assignment_expression "pbStack_154 = param_7" identifier = identifier) ;) (expression_statement "pbStack_150 = unaff_s4;" (assignment_expression "pbStack_150 = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_14c = unaff_s5;" (assignment_expression "pbStack_14c = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_148 = unaff_s6;" (assignment_expression "pbStack_148 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_144 = pcVar19;" (assignment_expression "pcStack_144 = pcVar19" identifier = identifier) ;) (if_statement "if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" { (expression_statement "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);" (call_expression "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" (parenthesized_expression "(**(code **)(pcVar18 + 0x295c4))" ( (pointer_expression "**(code **)(pcVar18 + 0x295c4)" * (pointer_expression "*(code **)(pcVar18 + 0x295c4)" * (cast_expression "(code **)(pcVar18 + 0x295c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x295c4)" ( (binary_expression "pcVar18 + 0x295c4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" ( (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x17c0" (pointer_expression "*(int *)(pcVar18 + 0x29518)" * (cast_expression "(int *)(pcVar18 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x29518)" ( (binary_expression "pcVar18 + 0x29518" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x245c" (pointer_expression "*(int *)(pcVar18 + 0x29518)" * (cast_expression "(int *)(pcVar18 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x29518)" ( (binary_expression "pcVar18 + 0x29518" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar4 = abStack_1b0;" (assignment_expression "pbVar4 = abStack_1b0" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd4)" ( (binary_expression "pcStack_1c0 + -0x7fd4" identifier + number_literal) ))))) ;) (do_statement "do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);" do (compound_statement "{\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar16 + 0x511c)" ( (binary_expression "iVar16 + 0x511c" identifier + number_literal) ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != abStack_1b0 + 0xc)" ( (binary_expression "pbVar4 != abStack_1b0 + 0xc" identifier != (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;" if (parenthesized_expression "(((int)uVar2 < 2) || (param_3 == (byte *)0x0))" ( (binary_expression "((int)uVar2 < 2) || (param_3 == (byte *)0x0)" (parenthesized_expression "((int)uVar2 < 2)" ( (binary_expression "(int)uVar2 < 2" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;)) (expression_statement "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(byte **)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(byte **)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "param_2 + 0x245c" identifier + number_literal) ))) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f74)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f74)" ( (binary_expression "pcStack_1c0 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(param_3,pbVar3,0xffffffff)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;) })) })) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);" statement_identifier : (expression_statement "iVar16 = FUN_0002d790(iVar16 + 0x245c);" (assignment_expression "iVar16 = FUN_0002d790(iVar16 + 0x245c)" identifier = (call_expression "FUN_0002d790(iVar16 + 0x245c)" identifier (argument_list "(iVar16 + 0x245c)" ( (binary_expression "iVar16 + 0x245c" identifier + number_literal) )))) ;)) (if_statement "if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar17 = -1;\n  }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);" (call_expression "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1c0 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7fb0)" ( (binary_expression "pcStack_1c0 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar16,abStack_1b0,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f1c)" ( (binary_expression "pcStack_1c0 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar16,abStack_1b0 + 0xc,0x40)" ( identifier , (binary_expression "abStack_1b0 + 0xc" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);" (call_expression "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d98))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d98)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d98)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d98)" ( (binary_expression "pcStack_1c0 + -0x7d98" identifier + number_literal) ))))) )) (argument_list "(iVar16,param_3,pbVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7e8c)" ( (binary_expression "pcStack_1c0 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar16,iVar17,0x3c,uVar2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "puStack_1c4 = &uStack_1b4;" (assignment_expression "puStack_1c4 = &uStack_1b4" identifier = (pointer_expression "&uStack_1b4" & identifier)) ;) (expression_statement "uStack_1c8 = uVar2;" (assignment_expression "uStack_1c8 = uVar2" identifier = identifier) ;) (expression_statement "uStack_1cc = (uint)pbStack_130 & 0xff;" (assignment_expression "uStack_1cc = (uint)pbStack_130 & 0xff" identifier = (binary_expression "(uint)pbStack_130 & 0xff" (cast_expression "(uint)pbStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);" (assignment_expression "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbStack_1d0 = abStack_1b0 + 0xc;" (assignment_expression "pbStack_1d0 = abStack_1b0 + 0xc" identifier = (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);" (assignment_expression "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f40)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f40)" ( (binary_expression "pcStack_1c0 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar16,param_2,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }" { (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d70))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d70)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d70)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d70)" ( (binary_expression "pcStack_1c0 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(iVar16)" ( identifier )))) ;) (expression_statement "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);" (assignment_expression "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ee8)" ( (binary_expression "pcStack_1c0 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" else (compound_statement "{\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" { (if_statement "if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" if (parenthesized_expression "(uStack_1b4 < 0x16)" ( (binary_expression "uStack_1b4 < 0x16" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" { comment comment (expression_statement "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();" (assignment_expression "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" identifier = (call_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" (parenthesized_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))" ( (pointer_expression "*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" * (parenthesized_expression "(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" ( (binary_expression "pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" * (cast_expression "(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4" (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_1b4 * 4" identifier * number_literal)) ))))) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) })) }))) (expression_statement "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);" (call_expression "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ea4)" ( (binary_expression "pcStack_1c0 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar16)" ( identifier ))) ;) }))) (if_statement "if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }" if (parenthesized_expression "(puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0))" ( (binary_expression "puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (pointer_expression "*(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (cast_expression "(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7dc0)" ( (binary_expression "pcStack_1c0 + -0x7dc0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1c0 + -0x7df4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7df4)" ( (binary_expression "pcStack_1c0 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0x2e638;" (assignment_expression "uVar5 = 0x2e638" identifier = number_literal) ;) (expression_statement "puVar8 = puStack_164;" (assignment_expression "puVar8 = puStack_164" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_208 = pcVar18 + 0x311d0;" (assignment_expression "pcStack_208 = pcVar18 + 0x311d0" identifier = (binary_expression "pcVar18 + 0x311d0" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29410)" ( (binary_expression "pcVar18 + 0x29410" identifier + number_literal) ))))))) ;) (expression_statement "uStack_1fc = 0x20e8080;" (assignment_expression "uStack_1fc = 0x20e8080" identifier = number_literal) ;) (expression_statement "uStack_1f8 = 0xa0000;" (assignment_expression "uStack_1f8 = 0xa0000" identifier = number_literal) ;) (expression_statement "uStack_1f4 = 0;" (assignment_expression "uStack_1f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_1f0 = 0;" (assignment_expression "uStack_1f0 = 0" identifier = number_literal) ;) (expression_statement "*puVar8 = 0x20e8080;" (assignment_expression "*puVar8 = 0x20e8080" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0xa0000;" (assignment_expression "puVar8[1] = 0xa0000" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" { (expression_statement "*(undefined1 *)((int)puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 2)" * (cast_expression "(undefined1 *)((int)puVar8 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 2)" ( (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 3)" * (cast_expression "(undefined1 *)((int)puVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 3)" ( (binary_expression "(int)puVar8 + 3" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 1)" * (cast_expression "(undefined1 *)(puVar8 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" * (cast_expression "(undefined1 *)((int)puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 5)" ( (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 6)" * (cast_expression "(undefined1 *)((int)puVar8 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 6)" ( (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 7)" * (cast_expression "(undefined1 *)((int)puVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 7)" ( (binary_expression "(int)puVar8 + 7" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 2)" * (cast_expression "(undefined1 *)(puVar8 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 2)" ( (binary_expression "puVar8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 9)" * (cast_expression "(undefined1 *)((int)puVar8 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 9)" ( (binary_expression "(int)puVar8 + 9" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" * (cast_expression "(undefined1 *)((int)puVar8 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 10)" ( (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xb)" ( (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 3)" * (cast_expression "(undefined1 *)(puVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xd)" ( (binary_expression "(int)puVar8 + 0xd" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xe)" ( (binary_expression "(int)puVar8 + 0xe" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xf)" ( (binary_expression "(int)puVar8 + 0xf" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }" if (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410))" ( (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29410)" ( (binary_expression "pcVar18 + 0x29410" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x293dc);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x293dc)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x293dc)" * (cast_expression "(code **)(pcVar18 + 0x293dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x293dc)" ( (binary_expression "pcVar18 + 0x293dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = FUN_0002e758;" (assignment_expression "pcVar19 = FUN_0002e758" identifier = identifier) ;) (expression_statement "puStack_1ec = puVar7;" (assignment_expression "puStack_1ec = puVar7" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar5;" (assignment_expression "uStack_1e4 = uVar5" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_248 = pcVar18 + 0x310b8;" (assignment_expression "pcStack_248 = pcVar18 + 0x310b8" identifier = (binary_expression "pcVar18 + 0x310b8" identifier + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);" (assignment_expression "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8)" identifier = (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar18 + 0x292f8)" * (pointer_expression "*(int **)(pcVar18 + 0x292f8)" * (cast_expression "(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292f8)" ( (binary_expression "pcVar18 + 0x292f8" identifier + number_literal) ))))))) ;) (expression_statement "iVar6 = *(int *)(pcVar18 + 0x290d4);" (assignment_expression "iVar6 = *(int *)(pcVar18 + 0x290d4)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x290d4)" * (cast_expression "(int *)(pcVar18 + 0x290d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x290d4)" ( (binary_expression "pcVar18 + 0x290d4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x7700);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x7700)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x7700)" * (cast_expression "(undefined4 *)(iVar6 + 0x7700)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7700)" ( (binary_expression "iVar6 + 0x7700" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x7704);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x7704)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x7704)" * (cast_expression "(undefined4 *)(iVar6 + 0x7704)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7704)" ( (binary_expression "iVar6 + 0x7704" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc)" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)(iVar6 + 0x76fc)" * (cast_expression "(undefined4 *)(iVar6 + 0x76fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x76fc)" ( (binary_expression "iVar6 + 0x76fc" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }" { (expression_statement "uStack_23c = 0x6000000;" (assignment_expression "uStack_23c = 0x6000000" identifier = number_literal) ;) (expression_statement "uStack_238 = 0;" (assignment_expression "uStack_238 = 0" identifier = number_literal) ;) (expression_statement "uStack_234 = 0;" (assignment_expression "uStack_234 = 0" identifier = number_literal) ;) (expression_statement "uStack_233 = 0;" (assignment_expression "uStack_233 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0x6000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0x6000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" * (cast_expression "(undefined4 *)((int)puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 2)" ( (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" * (cast_expression "(undefined4 *)((int)puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 10)" * (cast_expression "(undefined1 *)((int)puVar7 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 10)" ( (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xb)" ( (binary_expression "(int)puVar7 + 0xb" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" else (if_statement "if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x2)" ( (binary_expression "param_2 == (byte *)0x2" identifier == (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" { (expression_statement "pbStack_230 = (byte *)0xa0a0200;" (assignment_expression "pbStack_230 = (byte *)0xa0a0200" identifier = (cast_expression "(byte *)0xa0a0200" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_22c = 0;" (assignment_expression "uStack_22c = 0" identifier = number_literal) ;) (expression_statement "uStack_228 = 0x24b;" (assignment_expression "uStack_228 = 0x24b" identifier = number_literal) ;) (expression_statement "*puVar7 = 0xa0a0200;" (assignment_expression "*puVar7 = 0xa0a0200" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x24b;" (assignment_expression "puVar7[2] = 0x24b" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2 = pbStack_230;" (assignment_expression "param_2 = pbStack_230" identifier = identifier) ;) })))) (if_statement "if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8))" ( (binary_expression "puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)" identifier == (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar18 + 0x292f8)" * (pointer_expression "*(int **)(pcVar18 + 0x292f8)" * (cast_expression "(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292f8)" ( (binary_expression "pcVar18 + 0x292f8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x292c4);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x292c4)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x292c4)" * (cast_expression "(code **)(pcVar18 + 0x292c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292c4)" ( (binary_expression "pcVar18 + 0x292c4" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = FUN_0002e898;" (assignment_expression "pcVar20 = FUN_0002e898" identifier = identifier) ;) (expression_statement "puStack_224 = puVar8;" (assignment_expression "puStack_224 = puVar8" identifier = identifier) ;) (expression_statement "pcStack_21c = pcVar19;" (assignment_expression "pcStack_21c = pcVar19" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);" (assignment_expression "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x291b8)" ( (binary_expression "pcVar18 + 0x291b8" identifier + number_literal) ))))))) ;) (expression_statement "iStack_264 = iVar16;" (assignment_expression "iStack_264 = iVar16" identifier = identifier) ;) (expression_statement "iStack_260 = iVar17;" (assignment_expression "iStack_260 = iVar17" identifier = identifier) ;) (expression_statement "pcStack_25c = pcVar20;" (assignment_expression "pcStack_25c = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);" (call_expression "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e)" (parenthesized_expression "(**(code **)(pcVar18 + 0x290d0))" ( (pointer_expression "**(code **)(pcVar18 + 0x290d0)" * (pointer_expression "*(code **)(pcVar18 + 0x290d0)" * (cast_expression "(code **)(pcVar18 + 0x290d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x290d0)" ( (binary_expression "pcVar18 + 0x290d0" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_28c + 2,0,0x1e)" ( (binary_expression "(int)&uStack_28c + 2" (cast_expression "(int)&uStack_28c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_28c" & identifier)) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28f94);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28f94)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28f94)" * (cast_expression "(int *)(pcVar18 + 0x28f94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28f94)" ( (binary_expression "pcVar18 + 0x28f94" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(iVar16 + 0x76e0);" (assignment_expression "uVar15 = *(undefined4 *)(iVar16 + 0x76e0)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e0)" ( (binary_expression "iVar16 + 0x76e0" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar16 + 0x76e4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar16 + 0x76e4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e4)" ( (binary_expression "iVar16 + 0x76e4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar16 + 0x76e8);" (assignment_expression "uVar13 = *(undefined4 *)(iVar16 + 0x76e8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e8)" ( (binary_expression "iVar16 + 0x76e8" identifier + number_literal) ))))) ;) (expression_statement "iStack_2d8 = *(int *)(iVar16 + 0x76ec);" (assignment_expression "iStack_2d8 = *(int *)(iVar16 + 0x76ec)" identifier = (pointer_expression "*(int *)(iVar16 + 0x76ec)" * (cast_expression "(int *)(iVar16 + 0x76ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76ec)" ( (binary_expression "iVar16 + 0x76ec" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar16 + 0x76f0);" (assignment_expression "uVar11 = *(undefined4 *)(iVar16 + 0x76f0)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f0)" ( (binary_expression "iVar16 + 0x76f0" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76f4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76f4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f4)" ( (binary_expression "iVar16 + 0x76f4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76f8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76f8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f8)" ( (binary_expression "iVar16 + 0x76f8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(iVar16 + 0x76dc)" * (cast_expression "(undefined4 *)(iVar16 + 0x76dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76dc)" ( (binary_expression "iVar16 + 0x76dc" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = uVar15;" (assignment_expression "puVar8[1] = uVar15" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar14;" (assignment_expression "puVar8[2] = uVar14" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar13;" (assignment_expression "puVar8[3] = uVar13" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = iStack_2d8;" (assignment_expression "puVar8[4] = iStack_2d8" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar11;" (assignment_expression "puVar8[5] = uVar11" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uVar10;" (assignment_expression "puVar8[6] = uVar10" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = uVar5;" (assignment_expression "puVar8[7] = uVar5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }" { (expression_statement "iStack_2d8 = 0;" (assignment_expression "iStack_2d8 = 0" identifier = number_literal) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" else (if_statement "if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x2)" ( (binary_expression "param_2 == (byte *)0x2" identifier == (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" { (expression_statement "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));" (assignment_expression "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier = (call_expression "CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier (argument_list "(0x4a,CONCAT12(1,uStack_28c._2_2_))" ( number_literal , (call_expression "CONCAT12(1,uStack_28c._2_2_)" identifier (argument_list "(1,uStack_28c._2_2_)" ( number_literal , (field_expression "uStack_28c._2_2_" identifier . field_identifier) ))) )))) ;) (expression_statement "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);" (assignment_expression "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c)" identifier = (call_expression "CONCAT31(uStack_28c._0_3_,0x1c)" identifier (argument_list "(uStack_28c._0_3_,0x1c)" ( (field_expression "uStack_28c._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);" (assignment_expression "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288)" (field_expression "uStack_288._2_2_" identifier . field_identifier) = (call_expression "CONCAT11(0x40,(undefined1)uStack_288)" identifier (argument_list "(0x40,(undefined1)uStack_288)" ( number_literal , (cast_expression "(undefined1)uStack_288" ( (type_descriptor "undefined1" type_identifier) ) identifier) )))) ;) (expression_statement "*puVar8 = uStack_28c;" (assignment_expression "*puVar8 = uStack_28c" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = uStack_288;" (assignment_expression "puVar8[1] = uStack_288" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uStack_284;" (assignment_expression "puVar8[2] = uStack_284" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uStack_280;" (assignment_expression "puVar8[3] = uStack_280" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = iStack_27c;" (assignment_expression "puVar8[4] = iStack_27c" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uStack_278;" (assignment_expression "puVar8[5] = uStack_278" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uStack_274;" (assignment_expression "puVar8[6] = uStack_274" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = uStack_270;" (assignment_expression "puVar8[7] = uStack_270" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_2d8 = iStack_27c;" (assignment_expression "iStack_2d8 = iStack_27c" identifier = identifier) ;) })))) (if_statement "if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }" if (parenthesized_expression "(puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8))" ( (binary_expression "puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x291b8)" ( (binary_expression "pcVar18 + 0x291b8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x20;\n  }" { (return_statement "return 0x20;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x29184);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x29184)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x29184)" * (cast_expression "(code **)(pcVar18 + 0x29184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29184)" ( (binary_expression "pcVar18 + 0x29184" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = puStack_26c;" (assignment_expression "puVar8 = puStack_26c" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28fc4)" ( (binary_expression "pcVar18 + 0x28fc4" identifier + number_literal) ))))))) ;) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28da0);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28da0)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28da0)" * (cast_expression "(int *)(pcVar18 + 0x28da0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28da0)" ( (binary_expression "pcVar18 + 0x28da0" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76d4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76d4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d4)" ( (binary_expression "iVar16 + 0x76d4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76d8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76d8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d8)" ( (binary_expression "iVar16 + 0x76d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d0)" ( (binary_expression "iVar16 + 0x76d0" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = uVar10;" (assignment_expression "puVar8[1] = uVar10" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar5;" (assignment_expression "puVar8[2] = uVar5" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000;" (assignment_expression "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000" (pointer_expression "*(undefined4 *)((int)puVar8 + 2)" * (cast_expression "(undefined4 *)((int)puVar8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 2)" ( (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar8 + 6)" * (cast_expression "(undefined4 *)((int)puVar8 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 6)" ( (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" * (cast_expression "(undefined1 *)((int)puVar8 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 10)" ( (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xb)" ( (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" { (expression_statement "iStack_2d8 = 0x1c0a0800;" (assignment_expression "iStack_2d8 = 0x1c0a0800" identifier = number_literal) ;) (expression_statement "*puVar8 = 0x1c0a0800;" (assignment_expression "*puVar8 = 0x1c0a0800" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4))" ( (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28fc4)" ( (binary_expression "pcVar18 + 0x28fc4" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28f90);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28f90)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x28f90)" * (cast_expression "(code **)(pcVar18 + 0x28f90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28f90)" ( (binary_expression "pcVar18 + 0x28f90" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar16 = **(int **)(pcVar18 + 0x28e80);" (assignment_expression "iVar16 = **(int **)(pcVar18 + 0x28e80)" identifier = (pointer_expression "**(int **)(pcVar18 + 0x28e80)" * (pointer_expression "*(int **)(pcVar18 + 0x28e80)" * (cast_expression "(int **)(pcVar18 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e80)" ( (binary_expression "pcVar18 + 0x28e80" identifier + number_literal) )))))) ;) (expression_statement "iVar17 = *(int *)(pcVar18 + 0x28c5c);" (assignment_expression "iVar17 = *(int *)(pcVar18 + 0x28c5c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28c5c)" * (cast_expression "(int *)(pcVar18 + 0x28c5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28c5c)" ( (binary_expression "pcVar18 + 0x28c5c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar17 + 0x76c4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar17 + 0x76c4)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c4)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c4)" ( (binary_expression "iVar17 + 0x76c4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar17 + 0x76c8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar17 + 0x76c8)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c8)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c8)" ( (binary_expression "iVar17 + 0x76c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0)" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c0)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c0)" ( (binary_expression "iVar17 + 0x76c0" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);" (assignment_expression "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc)" (pointer_expression "*(undefined1 *)(puVar7 + 3)" * (cast_expression "(undefined1 *)(puVar7 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76cc)" * (cast_expression "(undefined1 *)(iVar17 + 0x76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76cc)" ( (binary_expression "iVar17 + 0x76cc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xd)" ( (binary_expression "(int)puVar7 + 0xd" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76cd)" * (cast_expression "(undefined1 *)(iVar17 + 0x76cd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76cd)" ( (binary_expression "iVar17 + 0x76cd" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xe)" ( (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76ce)" * (cast_expression "(undefined1 *)(iVar17 + 0x76ce)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76ce)" ( (binary_expression "iVar17 + 0x76ce" identifier + number_literal) ))))) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0xff000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0xff000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" * (cast_expression "(undefined4 *)((int)puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 2)" ( (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" * (cast_expression "(undefined4 *)((int)puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 10)" * (cast_expression "(undefined4 *)((int)puVar7 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 10)" ( (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xe)" ( (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xf)" ( (binary_expression "(int)puVar7 + 0xf" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" { (expression_statement "*puVar7 = 0xe0000;" (assignment_expression "*puVar7 = 0xe0000" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }" if (parenthesized_expression "(iVar16 == **(int **)(pcVar18 + 0x28e80))" ( (binary_expression "iVar16 == **(int **)(pcVar18 + 0x28e80)" identifier == (pointer_expression "**(int **)(pcVar18 + 0x28e80)" * (pointer_expression "*(int **)(pcVar18 + 0x28e80)" * (cast_expression "(int **)(pcVar18 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e80)" ( (binary_expression "pcVar18 + 0x28e80" identifier + number_literal) )))))) )) (compound_statement "{\n    return 0xf;\n  }" { (return_statement "return 0xf;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28e4c);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28e4c)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x28e4c)" * (cast_expression "(code **)(pcVar18 + 0x28e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e4c)" ( (binary_expression "pcVar18 + 0x28e4c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;" return (binary_expression "*(int *)(pcVar18 + 0x28ae8) + 0x25b0" (pointer_expression "*(int *)(pcVar18 + 0x28ae8)" * (cast_expression "(int *)(pcVar18 + 0x28ae8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28ae8)" ( (binary_expression "pcVar18 + 0x28ae8" identifier + number_literal) )))) + number_literal) ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0002e220) */\n/* WARNING: Removing unreachable block (ram,0x0002e278) */\n/* WARNING: Removing unreachable block (ram,0x0002e228) */\n/* WARNING: Removing unreachable block (ram,0x0002e230) */\n/* WARNING: Removing unreachable block (ram,0x0002e254) */\n/* WARNING: Removing unreachable block (ram,0x0002e258) */\n/* WARNING: Removing unreachable block (ram,0x0002df94) */\n/* WARNING: Removing unreachable block (ram,0x0002e2c4) */\n\nint sg_ll_get_config(int sg_fd,int rt,int starting,void *resp,int mx_resp_len,_Bool noisy,\n                    int verbose)\n\n{\n  uint uVar1;\n  uint8_t *puVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  uint8_t *puVar5;\n  sg_pt_base *psVar6;\n  undefined4 uVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  sg_pt_base *unaff_s0;\n  byte *pbVar17;\n  int iVar18;\n  uint8_t *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  sg_pt_base *psStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  uint8_t *puStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  sg_pt_base *psStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  uint8_t *puStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  uint8_t *puStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  sg_pt_base *psStack_bc;\n  int iStack_b8;\n  uint8_t *puStack_b4;\n  int iStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  uint8_t *local_90;\n  undefined4 *local_8c;\n  uint8_t *local_88;\n  int *local_84;\n  int sense_cat;\n  uint32_t u;\n  uint8_t gcCmdBlk [10];\n  byte abStack_66 [2];\n  uint8_t sense_b [64];\n  \n  puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50;\n  gcCmdBlk[0] = 'F';\n  gcCmdBlk[1] = '\0';\n  gcCmdBlk[2] = '\0';\n  gcCmdBlk[3] = '\0';\n  gcCmdBlk[4] = '\0';\n  gcCmdBlk[5] = '\0';\n  gcCmdBlk[6] = '\0';\n  gcCmdBlk[7] = '\0';\n  gcCmdBlk[8] = '\0';\n  gcCmdBlk[9] = '\0';\n  puVar3 = (uint8_t *)starting;\n  if ((uint)rt < 4) {\n    gcCmdBlk[1] = (uint8_t)rt;\n    puVar4 = (uint8_t *)resp;\n    unaff_s4 = (byte *)resp;\n    unaff_s5 = (byte *)sg_fd;\n    if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }\n  if (puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {\n    return iVar18;\n  }\n  pcVar19 = sg_ll_get_performance;\n  puVar13 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar10 = local_8c;\n  puVar5 = local_90;\n  puStack_120 = puVar13 + 0x31938;\n  pcStack_a4 = pcVar19;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  iStack_b0 = verbose;\n  puStack_b4 = unaff_s2;\n  iStack_b8 = iVar18;\n  psStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar13 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if ((uint)starting < (uint8_t *)0x20) {\n    abStack_110[1] = (char)starting;\n    pbVar17 = abStack_110 + 2;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;\n    pbVar17 = abStack_110 + 5;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;\n    verbose = (int)puVar2;\n    puStack_114 = puVar3;\n    if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }\n  }\n  else {\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(puStack_120 + -0x7df4);\n  pcVar20 = sg_ll_set_streaming;\n  iVar8 = iStack_c4;\n  (*pcVar19)();\n  uVar1 = uStack_12c;\n  pcStack_1c0 = pcVar19 + 0x314e8;\n  puStack_158 = puVar10;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)starting;\n  uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)puVar4 >> 8);\n  abStack_1b0[10] = (byte)puVar4;\n  psStack_160 = unaff_s0;\n  iStack_15c = iVar18;\n  puStack_154 = (uint8_t *)verbose;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar20;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);\n    pbVar17 = abStack_1b0;\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));\n  if (psVar6 == (sg_pt_base *)0x0) {\n    iVar18 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar7 = 0x2e638;\n  puVar10 = puStack_164;\n  (*pcVar19)();\n  pcStack_208 = pcVar19 + 0x311d0;\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar10 = 0x20e8080;\n  puVar10[1] = 0xa0000;\n  puVar10[2] = 0;\n  puVar10[3] = 0;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    *(undefined1 *)((int)puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 3) = 0;\n    *(undefined1 *)(puVar10 + 1) = 0;\n    *(undefined1 *)((int)puVar10 + 5) = 0;\n    *(undefined1 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 7) = 0;\n    *(undefined1 *)(puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 9) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n    *(undefined1 *)(puVar10 + 3) = 0;\n    *(undefined1 *)((int)puVar10 + 0xd) = 0;\n    *(undefined1 *)((int)puVar10 + 0xe) = 0;\n    *(undefined1 *)((int)puVar10 + 0xf) = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x293dc);\n  pcVar20 = resp_ctrl_m_pg;\n  puStack_1ec = puVar9;\n  uStack_1e4 = uVar7;\n  (*pcVar19)();\n  pcStack_248 = pcVar19 + 0x310b8;\n  puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8);\n  iVar8 = *(int *)(pcVar19 + 0x290d4);\n  uVar11 = *(undefined4 *)(iVar8 + 0x7700);\n  uVar7 = *(undefined4 *)(iVar8 + 0x7704);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76fc);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined1 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xb) = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }\n  if (puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x292c4);\n  pcVar21 = resp_ctrl_ext_m_pg;\n  puStack_224 = puVar10;\n  pcStack_21c = pcVar20;\n  (*pcVar19)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8);\n  psStack_264 = psVar6;\n  iStack_260 = iVar18;\n  pcStack_25c = pcVar21;\n  (**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar18 = *(int *)(pcVar19 + 0x28f94);\n  uVar16 = *(undefined4 *)(iVar18 + 0x76e0);\n  uVar15 = *(undefined4 *)(iVar18 + 0x76e4);\n  uVar14 = *(undefined4 *)(iVar18 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar18 + 0x76ec);\n  uVar12 = *(undefined4 *)(iVar18 + 0x76f0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76f4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76f8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76dc);\n  puVar10[1] = uVar16;\n  puVar10[2] = uVar15;\n  puVar10[3] = uVar14;\n  puVar10[4] = iStack_2d8;\n  puVar10[5] = uVar12;\n  puVar10[6] = uVar11;\n  puVar10[7] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    iStack_2d8 = 0;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    puVar10[4] = 0;\n    puVar10[5] = 0;\n    puVar10[6] = 0;\n    puVar10[7] = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x29184);\n  puVar10 = puStack_26c;\n  (*pcVar19)();\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4);\n  iVar18 = *(int *)(pcVar19 + 0x28da0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76d4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76d8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76d0);\n  puVar10[1] = uVar11;\n  puVar10[2] = uVar7;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28f90);\n  (*pcVar19)();\n  iVar18 = **(int **)(pcVar19 + 0x28e80);\n  iVar8 = *(int *)(pcVar19 + 0x28c5c);\n  uVar11 = *(undefined4 *)(iVar8 + 0x76c4);\n  uVar7 = *(undefined4 *)(iVar8 + 0x76c8);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76c0);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  *(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc);\n  *(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd);\n  *(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined4 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xe) = 0;\n    *(undefined1 *)((int)puVar9 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }\n  if (iVar18 == **(int **)(pcVar19 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28e4c);\n  (*pcVar19)();\n  return *(int *)(pcVar19 + 0x28ae8) + 0x25b0;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "int sg_ll_get_config(int sg_fd,int rt,int starting,void *resp,int mx_resp_len,_Bool noisy,\n                    int verbose)\n\n{\n  uint uVar1;\n  uint8_t *puVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  uint8_t *puVar5;\n  sg_pt_base *psVar6;\n  undefined4 uVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  sg_pt_base *unaff_s0;\n  byte *pbVar17;\n  int iVar18;\n  uint8_t *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  sg_pt_base *psStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  uint8_t *puStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  sg_pt_base *psStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  uint8_t *puStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  uint8_t *puStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  sg_pt_base *psStack_bc;\n  int iStack_b8;\n  uint8_t *puStack_b4;\n  int iStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  uint8_t *local_90;\n  undefined4 *local_8c;\n  uint8_t *local_88;\n  int *local_84;\n  int sense_cat;\n  uint32_t u;\n  uint8_t gcCmdBlk [10];\n  byte abStack_66 [2];\n  uint8_t sense_b [64];\n  \n  puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50;\n  gcCmdBlk[0] = 'F';\n  gcCmdBlk[1] = '\0';\n  gcCmdBlk[2] = '\0';\n  gcCmdBlk[3] = '\0';\n  gcCmdBlk[4] = '\0';\n  gcCmdBlk[5] = '\0';\n  gcCmdBlk[6] = '\0';\n  gcCmdBlk[7] = '\0';\n  gcCmdBlk[8] = '\0';\n  gcCmdBlk[9] = '\0';\n  puVar3 = (uint8_t *)starting;\n  if ((uint)rt < 4) {\n    gcCmdBlk[1] = (uint8_t)rt;\n    puVar4 = (uint8_t *)resp;\n    unaff_s4 = (byte *)resp;\n    unaff_s5 = (byte *)sg_fd;\n    if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }\n  if (puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {\n    return iVar18;\n  }\n  pcVar19 = sg_ll_get_performance;\n  puVar13 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar10 = local_8c;\n  puVar5 = local_90;\n  puStack_120 = puVar13 + 0x31938;\n  pcStack_a4 = pcVar19;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  iStack_b0 = verbose;\n  puStack_b4 = unaff_s2;\n  iStack_b8 = iVar18;\n  psStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar13 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if ((uint)starting < (uint8_t *)0x20) {\n    abStack_110[1] = (char)starting;\n    pbVar17 = abStack_110 + 2;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;\n    pbVar17 = abStack_110 + 5;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;\n    verbose = (int)puVar2;\n    puStack_114 = puVar3;\n    if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }\n  }\n  else {\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(puStack_120 + -0x7df4);\n  pcVar20 = sg_ll_set_streaming;\n  iVar8 = iStack_c4;\n  (*pcVar19)();\n  uVar1 = uStack_12c;\n  pcStack_1c0 = pcVar19 + 0x314e8;\n  puStack_158 = puVar10;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)starting;\n  uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)puVar4 >> 8);\n  abStack_1b0[10] = (byte)puVar4;\n  psStack_160 = unaff_s0;\n  iStack_15c = iVar18;\n  puStack_154 = (uint8_t *)verbose;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar20;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);\n    pbVar17 = abStack_1b0;\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));\n  if (psVar6 == (sg_pt_base *)0x0) {\n    iVar18 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar7 = 0x2e638;\n  puVar10 = puStack_164;\n  (*pcVar19)();\n  pcStack_208 = pcVar19 + 0x311d0;\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar10 = 0x20e8080;\n  puVar10[1] = 0xa0000;\n  puVar10[2] = 0;\n  puVar10[3] = 0;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    *(undefined1 *)((int)puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 3) = 0;\n    *(undefined1 *)(puVar10 + 1) = 0;\n    *(undefined1 *)((int)puVar10 + 5) = 0;\n    *(undefined1 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 7) = 0;\n    *(undefined1 *)(puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 9) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n    *(undefined1 *)(puVar10 + 3) = 0;\n    *(undefined1 *)((int)puVar10 + 0xd) = 0;\n    *(undefined1 *)((int)puVar10 + 0xe) = 0;\n    *(undefined1 *)((int)puVar10 + 0xf) = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x293dc);\n  pcVar20 = resp_ctrl_m_pg;\n  puStack_1ec = puVar9;\n  uStack_1e4 = uVar7;\n  (*pcVar19)();\n  pcStack_248 = pcVar19 + 0x310b8;\n  puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8);\n  iVar8 = *(int *)(pcVar19 + 0x290d4);\n  uVar11 = *(undefined4 *)(iVar8 + 0x7700);\n  uVar7 = *(undefined4 *)(iVar8 + 0x7704);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76fc);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined1 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xb) = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }\n  if (puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x292c4);\n  pcVar21 = resp_ctrl_ext_m_pg;\n  puStack_224 = puVar10;\n  pcStack_21c = pcVar20;\n  (*pcVar19)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8);\n  psStack_264 = psVar6;\n  iStack_260 = iVar18;\n  pcStack_25c = pcVar21;\n  (**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar18 = *(int *)(pcVar19 + 0x28f94);\n  uVar16 = *(undefined4 *)(iVar18 + 0x76e0);\n  uVar15 = *(undefined4 *)(iVar18 + 0x76e4);\n  uVar14 = *(undefined4 *)(iVar18 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar18 + 0x76ec);\n  uVar12 = *(undefined4 *)(iVar18 + 0x76f0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76f4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76f8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76dc);\n  puVar10[1] = uVar16;\n  puVar10[2] = uVar15;\n  puVar10[3] = uVar14;\n  puVar10[4] = iStack_2d8;\n  puVar10[5] = uVar12;\n  puVar10[6] = uVar11;\n  puVar10[7] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    iStack_2d8 = 0;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    puVar10[4] = 0;\n    puVar10[5] = 0;\n    puVar10[6] = 0;\n    puVar10[7] = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x29184);\n  puVar10 = puStack_26c;\n  (*pcVar19)();\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4);\n  iVar18 = *(int *)(pcVar19 + 0x28da0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76d4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76d8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76d0);\n  puVar10[1] = uVar11;\n  puVar10[2] = uVar7;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28f90);\n  (*pcVar19)();\n  iVar18 = **(int **)(pcVar19 + 0x28e80);\n  iVar8 = *(int *)(pcVar19 + 0x28c5c);\n  uVar11 = *(undefined4 *)(iVar8 + 0x76c4);\n  uVar7 = *(undefined4 *)(iVar8 + 0x76c8);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76c0);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  *(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc);\n  *(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd);\n  *(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined4 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xe) = 0;\n    *(undefined1 *)((int)puVar9 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }\n  if (iVar18 == **(int **)(pcVar19 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28e4c);\n  (*pcVar19)();\n  return *(int *)(pcVar19 + 0x28ae8) + 0x25b0;\n}" primitive_type (function_declarator "sg_ll_get_config(int sg_fd,int rt,int starting,void *resp,int mx_resp_len,_Bool noisy,\n                    int verbose)" identifier (parameter_list "(int sg_fd,int rt,int starting,void *resp,int mx_resp_len,_Bool noisy,\n                    int verbose)" ( (parameter_declaration "int sg_fd" primitive_type identifier) , (parameter_declaration "int rt" primitive_type identifier) , (parameter_declaration "int starting" 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  uint uVar1;\n  uint8_t *puVar2;\n  uint8_t *puVar3;\n  uint8_t *puVar4;\n  uint8_t *puVar5;\n  sg_pt_base *psVar6;\n  undefined4 uVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  sg_pt_base *unaff_s0;\n  byte *pbVar17;\n  int iVar18;\n  uint8_t *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar19;\n  code *pcVar20;\n  code *pcVar21;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  sg_pt_base *psStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  uint8_t *puStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  sg_pt_base *psStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  uint8_t *puStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  uint8_t *puStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  sg_pt_base *psStack_bc;\n  int iStack_b8;\n  uint8_t *puStack_b4;\n  int iStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  uint8_t *local_90;\n  undefined4 *local_8c;\n  uint8_t *local_88;\n  int *local_84;\n  int sense_cat;\n  uint32_t u;\n  uint8_t gcCmdBlk [10];\n  byte abStack_66 [2];\n  uint8_t sense_b [64];\n  \n  puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50;\n  gcCmdBlk[0] = 'F';\n  gcCmdBlk[1] = '\0';\n  gcCmdBlk[2] = '\0';\n  gcCmdBlk[3] = '\0';\n  gcCmdBlk[4] = '\0';\n  gcCmdBlk[5] = '\0';\n  gcCmdBlk[6] = '\0';\n  gcCmdBlk[7] = '\0';\n  gcCmdBlk[8] = '\0';\n  gcCmdBlk[9] = '\0';\n  puVar3 = (uint8_t *)starting;\n  if ((uint)rt < 4) {\n    gcCmdBlk[1] = (uint8_t)rt;\n    puVar4 = (uint8_t *)resp;\n    unaff_s4 = (byte *)resp;\n    unaff_s5 = (byte *)sg_fd;\n    if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }\n  if (puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {\n    return iVar18;\n  }\n  pcVar19 = sg_ll_get_performance;\n  puVar13 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar10 = local_8c;\n  puVar5 = local_90;\n  puStack_120 = puVar13 + 0x31938;\n  pcStack_a4 = pcVar19;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  iStack_b0 = verbose;\n  puStack_b4 = unaff_s2;\n  iStack_b8 = iVar18;\n  psStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar13 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if ((uint)starting < (uint8_t *)0x20) {\n    abStack_110[1] = (char)starting;\n    pbVar17 = abStack_110 + 2;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;\n    pbVar17 = abStack_110 + 5;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;\n    verbose = (int)puVar2;\n    puStack_114 = puVar3;\n    if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }\n  }\n  else {\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(puStack_120 + -0x7df4);\n  pcVar20 = sg_ll_set_streaming;\n  iVar8 = iStack_c4;\n  (*pcVar19)();\n  uVar1 = uStack_12c;\n  pcStack_1c0 = pcVar19 + 0x314e8;\n  puStack_158 = puVar10;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)starting;\n  uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)puVar4 >> 8);\n  abStack_1b0[10] = (byte)puVar4;\n  psStack_160 = unaff_s0;\n  iStack_15c = iVar18;\n  puStack_154 = (uint8_t *)verbose;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar20;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);\n    pbVar17 = abStack_1b0;\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));\n  if (psVar6 == (sg_pt_base *)0x0) {\n    iVar18 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar18;\n  }\n  pcVar19 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar7 = 0x2e638;\n  puVar10 = puStack_164;\n  (*pcVar19)();\n  pcStack_208 = pcVar19 + 0x311d0;\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar10 = 0x20e8080;\n  puVar10[1] = 0xa0000;\n  puVar10[2] = 0;\n  puVar10[3] = 0;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    *(undefined1 *)((int)puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 3) = 0;\n    *(undefined1 *)(puVar10 + 1) = 0;\n    *(undefined1 *)((int)puVar10 + 5) = 0;\n    *(undefined1 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 7) = 0;\n    *(undefined1 *)(puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 9) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n    *(undefined1 *)(puVar10 + 3) = 0;\n    *(undefined1 *)((int)puVar10 + 0xd) = 0;\n    *(undefined1 *)((int)puVar10 + 0xe) = 0;\n    *(undefined1 *)((int)puVar10 + 0xf) = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x293dc);\n  pcVar20 = resp_ctrl_m_pg;\n  puStack_1ec = puVar9;\n  uStack_1e4 = uVar7;\n  (*pcVar19)();\n  pcStack_248 = pcVar19 + 0x310b8;\n  puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8);\n  iVar8 = *(int *)(pcVar19 + 0x290d4);\n  uVar11 = *(undefined4 *)(iVar8 + 0x7700);\n  uVar7 = *(undefined4 *)(iVar8 + 0x7704);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76fc);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined1 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xb) = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }\n  if (puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x292c4);\n  pcVar21 = resp_ctrl_ext_m_pg;\n  puStack_224 = puVar10;\n  pcStack_21c = pcVar20;\n  (*pcVar19)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8);\n  psStack_264 = psVar6;\n  iStack_260 = iVar18;\n  pcStack_25c = pcVar21;\n  (**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar18 = *(int *)(pcVar19 + 0x28f94);\n  uVar16 = *(undefined4 *)(iVar18 + 0x76e0);\n  uVar15 = *(undefined4 *)(iVar18 + 0x76e4);\n  uVar14 = *(undefined4 *)(iVar18 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar18 + 0x76ec);\n  uVar12 = *(undefined4 *)(iVar18 + 0x76f0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76f4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76f8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76dc);\n  puVar10[1] = uVar16;\n  puVar10[2] = uVar15;\n  puVar10[3] = uVar14;\n  puVar10[4] = iStack_2d8;\n  puVar10[5] = uVar12;\n  puVar10[6] = uVar11;\n  puVar10[7] = uVar7;\n  if ((uint8_t *)starting == (uint8_t *)0x1) {\n    iStack_2d8 = 0;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    puVar10[4] = 0;\n    puVar10[5] = 0;\n    puVar10[6] = 0;\n    puVar10[7] = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x29184);\n  puVar10 = puStack_26c;\n  (*pcVar19)();\n  puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4);\n  iVar18 = *(int *)(pcVar19 + 0x28da0);\n  uVar11 = *(undefined4 *)(iVar18 + 0x76d4);\n  uVar7 = *(undefined4 *)(iVar18 + 0x76d8);\n  *puVar10 = *(undefined4 *)(iVar18 + 0x76d0);\n  puVar10[1] = uVar11;\n  puVar10[2] = uVar7;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }\n  if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28f90);\n  (*pcVar19)();\n  iVar18 = **(int **)(pcVar19 + 0x28e80);\n  iVar8 = *(int *)(pcVar19 + 0x28c5c);\n  uVar11 = *(undefined4 *)(iVar8 + 0x76c4);\n  uVar7 = *(undefined4 *)(iVar8 + 0x76c8);\n  *puVar9 = *(undefined4 *)(iVar8 + 0x76c0);\n  puVar9[1] = uVar11;\n  puVar9[2] = uVar7;\n  *(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc);\n  *(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd);\n  *(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined4 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xe) = 0;\n    *(undefined1 *)((int)puVar9 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }\n  if (iVar18 == **(int **)(pcVar19 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar19 = *(code **)(pcVar19 + 0x28e4c);\n  (*pcVar19)();\n  return *(int *)(pcVar19 + 0x28ae8) + 0x25b0;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint8_t *puVar2;" primitive_type (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint8_t *puVar3;" primitive_type (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint8_t *puVar4;" primitive_type (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint8_t *puVar5;" primitive_type (pointer_declarator "*puVar5" * identifier) ;) (declaration "sg_pt_base *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "sg_pt_base *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint8_t *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "int iStack_2d8;" primitive_type identifier ;) (declaration "undefined4 uStack_28c;" type_identifier identifier ;) (declaration "undefined4 uStack_288;" type_identifier identifier ;) (declaration "undefined4 uStack_284;" type_identifier identifier ;) (declaration "undefined4 uStack_280;" type_identifier identifier ;) (declaration "int iStack_27c;" primitive_type identifier ;) (declaration "undefined4 uStack_278;" type_identifier identifier ;) (declaration "undefined4 uStack_274;" type_identifier identifier ;) (declaration "undefined4 uStack_270;" type_identifier identifier ;) (declaration "undefined4 *puStack_26c;" type_identifier (pointer_declarator "*puStack_26c" * identifier) ;) (declaration "sg_pt_base *psStack_264;" type_identifier (pointer_declarator "*psStack_264" * identifier) ;) (declaration "int iStack_260;" primitive_type identifier ;) (declaration "code *pcStack_25c;" type_identifier (pointer_declarator "*pcStack_25c" * identifier) ;) (declaration "code *pcStack_248;" type_identifier (pointer_declarator "*pcStack_248" * identifier) ;) (declaration "undefined4 uStack_23c;" type_identifier identifier ;) (declaration "undefined4 uStack_238;" type_identifier identifier ;) (declaration "undefined1 uStack_234;" type_identifier identifier ;) (declaration "undefined1 uStack_233;" type_identifier identifier ;) (declaration "uint8_t *puStack_230;" primitive_type (pointer_declarator "*puStack_230" * identifier) ;) (declaration "undefined4 uStack_22c;" type_identifier identifier ;) (declaration "undefined4 uStack_228;" type_identifier identifier ;) (declaration "undefined4 *puStack_224;" type_identifier (pointer_declarator "*puStack_224" * identifier) ;) (declaration "code *pcStack_21c;" type_identifier (pointer_declarator "*pcStack_21c" * identifier) ;) (declaration "code *pcStack_208;" type_identifier (pointer_declarator "*pcStack_208" * identifier) ;) (declaration "undefined4 uStack_1fc;" type_identifier identifier ;) (declaration "undefined4 uStack_1f8;" type_identifier identifier ;) (declaration "undefined4 uStack_1f4;" type_identifier identifier ;) (declaration "undefined4 uStack_1f0;" type_identifier identifier ;) (declaration "undefined4 *puStack_1ec;" type_identifier (pointer_declarator "*puStack_1ec" * identifier) ;) (declaration "undefined4 uStack_1e4;" type_identifier identifier ;) (declaration "byte *pbStack_1d0;" type_identifier (pointer_declarator "*pbStack_1d0" * identifier) ;) (declaration "uint uStack_1cc;" type_identifier identifier ;) (declaration "uint uStack_1c8;" type_identifier identifier ;) (declaration "uint *puStack_1c4;" type_identifier (pointer_declarator "*puStack_1c4" * identifier) ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "uint uStack_1b4;" type_identifier identifier ;) (declaration "byte abStack_1b0 [76];" type_identifier (array_declarator "abStack_1b0 [76]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "sg_pt_base *psStack_160;" type_identifier (pointer_declarator "*psStack_160" * identifier) ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "undefined4 *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "uint8_t *puStack_154;" primitive_type (pointer_declarator "*puStack_154" * identifier) ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "byte *pbStack_14c;" type_identifier (pointer_declarator "*pbStack_14c" * identifier) ;) (declaration "byte *pbStack_148;" type_identifier (pointer_declarator "*pbStack_148" * identifier) ;) (declaration "code *pcStack_144;" type_identifier (pointer_declarator "*pcStack_144" * identifier) ;) (declaration "byte *pbStack_130;" type_identifier (pointer_declarator "*pbStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "undefined1 *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "int *piStack_124;" primitive_type (pointer_declarator "*piStack_124" * identifier) ;) (declaration "undefined *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "uint8_t *puStack_114;" primitive_type (pointer_declarator "*puStack_114" * identifier) ;) (declaration "byte abStack_110 [2];" type_identifier (array_declarator "abStack_110 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_10e [4];" type_identifier (array_declarator "auStack_10e [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_10a;" type_identifier identifier ;) (declaration "undefined1 uStack_109;" type_identifier identifier ;) (declaration "undefined2 uStack_108;" type_identifier identifier ;) (declaration "undefined1 uStack_106;" type_identifier identifier ;) (declaration "undefined1 uStack_105;" type_identifier identifier ;) (declaration "byte abStack_104 [64];" type_identifier (array_declarator "abStack_104 [64]" identifier [ number_literal ]) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "sg_pt_base *psStack_bc;" type_identifier (pointer_declarator "*psStack_bc" * identifier) ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "uint8_t *puStack_b4;" primitive_type (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "int iStack_b0;" primitive_type identifier ;) (declaration "byte *pbStack_ac;" type_identifier (pointer_declarator "*pbStack_ac" * identifier) ;) (declaration "byte *pbStack_a8;" type_identifier (pointer_declarator "*pbStack_a8" * identifier) ;) (declaration "code *pcStack_a4;" type_identifier (pointer_declarator "*pcStack_a4" * identifier) ;) (declaration "uint8_t *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined4 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint8_t *local_88;" primitive_type (pointer_declarator "*local_88" * identifier) ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int sense_cat;" primitive_type identifier ;) (declaration "uint32_t u;" primitive_type identifier ;) (declaration "uint8_t gcCmdBlk [10];" primitive_type (array_declarator "gcCmdBlk [10]" identifier [ number_literal ]) ;) (declaration "byte abStack_66 [2];" type_identifier (array_declarator "abStack_66 [2]" identifier [ number_literal ]) ;) (declaration "uint8_t sense_b [64];" primitive_type (array_declarator "sense_b [64]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50;" (assignment_expression "puVar2 = *(uint8_t **)PTR___stack_chk_guard_00057a50" identifier = (pointer_expression "*(uint8_t **)PTR___stack_chk_guard_00057a50" * (cast_expression "(uint8_t **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "gcCmdBlk[0] = 'F';" (assignment_expression "gcCmdBlk[0] = 'F'" (subscript_expression "gcCmdBlk[0]" identifier [ number_literal ]) = (char_literal "'F'" ' character ')) ;) (expression_statement "gcCmdBlk[1] = '\0';" (assignment_expression "gcCmdBlk[1] = '\0'" (subscript_expression "gcCmdBlk[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[2] = '\0';" (assignment_expression "gcCmdBlk[2] = '\0'" (subscript_expression "gcCmdBlk[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[3] = '\0';" (assignment_expression "gcCmdBlk[3] = '\0'" (subscript_expression "gcCmdBlk[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[4] = '\0';" (assignment_expression "gcCmdBlk[4] = '\0'" (subscript_expression "gcCmdBlk[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[5] = '\0';" (assignment_expression "gcCmdBlk[5] = '\0'" (subscript_expression "gcCmdBlk[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[6] = '\0';" (assignment_expression "gcCmdBlk[6] = '\0'" (subscript_expression "gcCmdBlk[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[7] = '\0';" (assignment_expression "gcCmdBlk[7] = '\0'" (subscript_expression "gcCmdBlk[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[8] = '\0';" (assignment_expression "gcCmdBlk[8] = '\0'" (subscript_expression "gcCmdBlk[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "gcCmdBlk[9] = '\0';" (assignment_expression "gcCmdBlk[9] = '\0'" (subscript_expression "gcCmdBlk[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar3 = (uint8_t *)starting;" (assignment_expression "puVar3 = (uint8_t *)starting" identifier = (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((uint)rt < 4) {\n    gcCmdBlk[1] = (uint8_t)rt;\n    puVar4 = (uint8_t *)resp;\n    unaff_s4 = (byte *)resp;\n    unaff_s5 = (byte *)sg_fd;\n    if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }" if (parenthesized_expression "((uint)rt < 4)" ( (binary_expression "(uint)rt < 4" (cast_expression "(uint)rt" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n    gcCmdBlk[1] = (uint8_t)rt;\n    puVar4 = (uint8_t *)resp;\n    unaff_s4 = (byte *)resp;\n    unaff_s5 = (byte *)sg_fd;\n    if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }\n  }" { (expression_statement "gcCmdBlk[1] = (uint8_t)rt;" (assignment_expression "gcCmdBlk[1] = (uint8_t)rt" (subscript_expression "gcCmdBlk[1]" identifier [ number_literal ]) = (cast_expression "(uint8_t)rt" ( (type_descriptor "uint8_t" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = (uint8_t *)resp;" (assignment_expression "puVar4 = (uint8_t *)resp" identifier = (cast_expression "(uint8_t *)resp" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s4 = (byte *)resp;" (assignment_expression "unaff_s4 = (byte *)resp" identifier = (cast_expression "(byte *)resp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s5 = (byte *)sg_fd;" (assignment_expression "unaff_s5 = (byte *)sg_fd" identifier = (cast_expression "(byte *)sg_fd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((uint)starting < 0x10000) {\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }\n    else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }" if (parenthesized_expression "((uint)starting < 0x10000)" ( (binary_expression "(uint)starting < 0x10000" (cast_expression "(uint)starting" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      gcCmdBlk._2_2_ = (undefined2)starting;\n      if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }\n    }" { (expression_statement "gcCmdBlk._2_2_ = (undefined2)starting;" (assignment_expression "gcCmdBlk._2_2_ = (undefined2)starting" (field_expression "gcCmdBlk._2_2_" identifier . field_identifier) = (cast_expression "(undefined2)starting" ( (type_descriptor "undefined2" type_identifier) ) identifier)) ;) (if_statement "if ((uint)mx_resp_len < 0x10000) {\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }\n      else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }" if (parenthesized_expression "((uint)mx_resp_len < 0x10000)" ( (binary_expression "(uint)mx_resp_len < 0x10000" (cast_expression "(uint)mx_resp_len" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        u = CONCAT22((short)mx_resp_len,u._2_2_);\n        gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);\n        gcCmdBlk[8] = (uint8_t)mx_resp_len;\n        puVar5 = (uint8_t *)rt;\n        if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }\n        starting = (int)puVar5;\n        unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }\n      }" { (expression_statement "u = CONCAT22((short)mx_resp_len,u._2_2_);" (assignment_expression "u = CONCAT22((short)mx_resp_len,u._2_2_)" identifier = (call_expression "CONCAT22((short)mx_resp_len,u._2_2_)" identifier (argument_list "((short)mx_resp_len,u._2_2_)" ( (cast_expression "(short)mx_resp_len" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "u._2_2_" identifier . field_identifier) )))) ;) (expression_statement "gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8);" (assignment_expression "gcCmdBlk[7] = (uint8_t)((uint)mx_resp_len >> 8)" (subscript_expression "gcCmdBlk[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 "gcCmdBlk[8] = (uint8_t)mx_resp_len;" (assignment_expression "gcCmdBlk[8] = (uint8_t)mx_resp_len" (subscript_expression "gcCmdBlk[8]" identifier [ number_literal ]) = (cast_expression "(uint8_t)mx_resp_len" ( (type_descriptor "uint8_t" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = (uint8_t *)rt;" (assignment_expression "puVar5 = (uint8_t *)rt" identifier = (cast_expression "(uint8_t *)rt" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (verbose != 0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar17 = gcCmdBlk;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n          puVar3 = (uint8_t *)starting;\n        }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x17c0" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (expression_statement "pbVar17 = gcCmdBlk;" (assignment_expression "pbVar17 = gcCmdBlk" identifier = identifier) ;) (expression_statement "unaff_s6 = abStack_66;" (assignment_expression "unaff_s6 = abStack_66" identifier = identifier) ;) (expression_statement "unaff_s2 = PTR_LAB_0005783c + 0x511c;" (assignment_expression "unaff_s2 = PTR_LAB_0005783c + 0x511c" identifier = (binary_expression "PTR_LAB_0005783c + 0x511c" identifier + number_literal)) ;) (do_statement "do {\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          } while (pbVar17 != unaff_s6);" do (compound_statement "{\n            puVar5 = (uint8_t *)(uint)*pbVar17;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar17 = pbVar17 + 1;\n          }" { (expression_statement "puVar5 = (uint8_t *)(uint)*pbVar17;" (assignment_expression "puVar5 = (uint8_t *)(uint)*pbVar17" identifier = (binary_expression "(uint8_t *)(uint)*pbVar17" (cast_expression "(uint8_t *)(uint)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(unaff_s2);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != unaff_s6)" ( (binary_expression "pbVar17 != unaff_s6" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x29c4)" ( (binary_expression "PTR_s__00057840 + 0x29c4" identifier + number_literal) ))) ;) (expression_statement "puVar3 = (uint8_t *)starting;" (assignment_expression "puVar3 = (uint8_t *)starting" identifier = (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "starting = (int)puVar5;" (assignment_expression "starting = (int)puVar5" identifier = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0);" (assignment_expression "unaff_s0 = create_pt_obj(PTR_s__00057840 + 0x23e0)" identifier = (call_expression "create_pt_obj(PTR_s__00057840 + 0x23e0)" identifier (argument_list "(PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) )))) ;) (if_statement "if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }" if (parenthesized_expression "(unaff_s0 == (sg_pt_base *)0x0)" ( (binary_expression "unaff_s0 == (sg_pt_base *)0x0" identifier == (cast_expression "(sg_pt_base *)0x0" ( (type_descriptor "sg_pt_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar18 = -1;\n        }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }" else (compound_statement "{\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);\n          unaff_s2 = sense_b;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);\n          puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);\n          local_84 = &sense_cat;\n          local_88 = (uint8_t *)verbose;\n          local_8c = (undefined4 *)(uint)noisy;\n          starting = (int)(PTR_s__00057840 + 0x23e0);\n          local_90 = unaff_s2;\n          puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          puVar4 = (uint8_t *)mx_resp_len;\n        }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,gcCmdBlk,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00057860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00057860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,gcCmdBlk,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s2 = sense_b;" (assignment_expression "unaff_s2 = sense_b" identifier = identifier) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000578f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000578f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,unaff_s2,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,resp,mx_resp_len)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00057a84" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00057a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,resp,mx_resp_len)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose);" (assignment_expression "puVar3 = (uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose)" identifier = (cast_expression "(uint8_t *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,sg_fd,0x3c,verbose)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00057984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00057984" * (cast_expression "(code *)PTR_do_scsi_pt_00057984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,sg_fd,0x3c,verbose)" ( identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "local_84 = &sense_cat;" (assignment_expression "local_84 = &sense_cat" identifier = (pointer_expression "&sense_cat" & identifier)) ;) (expression_statement "local_88 = (uint8_t *)verbose;" (assignment_expression "local_88 = (uint8_t *)verbose" identifier = (cast_expression "(uint8_t *)verbose" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_8c = (undefined4 *)(uint)noisy;" (assignment_expression "local_8c = (undefined4 *)(uint)noisy" identifier = (cast_expression "(undefined4 *)(uint)noisy" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)noisy" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "starting = (int)(PTR_s__00057840 + 0x23e0);" (assignment_expression "starting = (int)(PTR_s__00057840 + 0x23e0)" identifier = (cast_expression "(int)(PTR_s__00057840 + 0x23e0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) )))) ;) (expression_statement "local_90 = unaff_s2;" (assignment_expression "local_90 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);" (assignment_expression "puVar4 = (uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" identifier = (cast_expression "(uint8_t *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000578d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000578d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (puVar4 == (uint8_t *)0xffffffff) {\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }\n          else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(puVar4 == (uint8_t *)0xffffffff)" ( (binary_expression "puVar4 == (uint8_t *)0xffffffff" identifier == (cast_expression "(uint8_t *)0xffffffff" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);\n          }" { (expression_statement "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);" (assignment_expression "uVar7 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00057aa0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00057aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7);" (assignment_expression "iVar18 = (*(code *)PTR_sg_convert_errno_00057928)(uVar7)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00057928)(uVar7)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00057928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00057928" * (cast_expression "(code *)PTR_sg_convert_errno_00057928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" else (if_statement "if (puVar4 == (uint8_t *)0xfffffffe) {\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(puVar4 == (uint8_t *)0xfffffffe)" ( (binary_expression "puVar4 == (uint8_t *)0xfffffffe" identifier == (cast_expression "(uint8_t *)0xfffffffe" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }" { (if_statement "if (sense_cat - 5U < 0x11) {\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }" if (parenthesized_expression "(sense_cat - 5U < 0x11)" ( (binary_expression "sense_cat - 5U < 0x11" (binary_expression "sense_cat - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();\n              return iVar18;\n            }" { comment comment (expression_statement "iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ();" (assignment_expression "iVar18 = (*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))\n                                 ()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8))" ( (binary_expression "&_gp + *(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)" * (cast_expression "(int *)(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8)" ( (binary_expression "PTR_s__00057840 + (sense_cat - 5U) * 4 + 0x24c8" (binary_expression "PTR_s__00057840 + (sense_cat - 5U) * 4" identifier + (binary_expression "(sense_cat - 5U) * 4" (parenthesized_expression "(sense_cat - 5U)" ( (binary_expression "sense_cat - 5U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar18;" return identifier ;) })) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" else (if_statement "if (verbose < 3) {\n            iVar18 = 0;\n          }\n          else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(verbose < 3)" ( (binary_expression "verbose < 3" identifier < number_literal) )) (compound_statement "{\n            iVar18 = 0;\n          }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar18 = 0;\n            if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }\n          }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (3 < (int)puVar4) {\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }" if (parenthesized_expression "(3 < (int)puVar4)" ( (binary_expression "3 < (int)puVar4" number_literal < (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n              u = *resp;\n              starting = u;\n              if ((int)u < 0) {\n                starting = 0;\n              }\n              if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }\n            }" { comment (expression_statement "u = *resp;" (assignment_expression "u = *resp" identifier = (pointer_expression "*resp" * identifier)) ;) (expression_statement "starting = u;" (assignment_expression "starting = u" identifier = identifier) ;) (if_statement "if ((int)u < 0) {\n                starting = 0;\n              }" if (parenthesized_expression "((int)u < 0)" ( (binary_expression "(int)u < 0" (cast_expression "(int)u" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                starting = 0;\n              }" { (expression_statement "starting = 0;" (assignment_expression "starting = 0" identifier = number_literal) ;) })) (if_statement "if ((int)puVar4 <= starting) {\n                starting = (int)puVar4;\n              }" if (parenthesized_expression "((int)puVar4 <= starting)" ( (binary_expression "(int)puVar4 <= starting" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                starting = (int)puVar4;\n              }" { (expression_statement "starting = (int)puVar4;" (assignment_expression "starting = (int)puVar4" identifier = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23f4" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (if_statement "if (verbose == 3) {\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }" if (parenthesized_expression "(verbose == 3)" ( (binary_expression "verbose == 3" identifier == number_literal) )) (compound_statement "{\n                if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);\n                puVar3 = (uint8_t *)0xffffffff;\n                puVar4 = (uint8_t *)0x100;\n                if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n                starting = (int)puVar4;\n              }" { (if_statement "if (starting < 0x101) {\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }" if (parenthesized_expression "(starting < 0x101)" ( (binary_expression "starting < 0x101" identifier < number_literal) )) (compound_statement "{\n                  puVar13 = PTR_s__00057840 + 0x17b4;\n                }" { (expression_statement "puVar13 = PTR_s__00057840 + 0x17b4;" (assignment_expression "puVar13 = PTR_s__00057840 + 0x17b4" identifier = (binary_expression "PTR_s__00057840 + 0x17b4" identifier + number_literal)) ;) }) (else_clause "else {\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }" else (compound_statement "{\n                  puVar13 = PTR_s__00057840 + 0x1b00;\n                }" { (expression_statement "puVar13 = PTR_s__00057840 + 0x1b00;" (assignment_expression "puVar13 = PTR_s__00057840 + 0x1b00" identifier = (binary_expression "PTR_s__00057840 + 0x1b00" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar13)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005783c + 0x55c4,puVar13)" ( (binary_expression "PTR_LAB_0005783c + 0x55c4" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar3 = (uint8_t *)0xffffffff;" (assignment_expression "puVar3 = (uint8_t *)0xffffffff" identifier = (cast_expression "(uint8_t *)0xffffffff" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (uint8_t *)0x100;" (assignment_expression "puVar4 = (uint8_t *)0x100" identifier = (cast_expression "(uint8_t *)0x100" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (starting < 0x101) {\n                  puVar4 = (uint8_t *)starting;\n                }" if (parenthesized_expression "(starting < 0x101)" ( (binary_expression "starting < 0x101" identifier < number_literal) )) (compound_statement "{\n                  puVar4 = (uint8_t *)starting;\n                }" { (expression_statement "puVar4 = (uint8_t *)starting;" (assignment_expression "puVar4 = (uint8_t *)starting" identifier = (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(resp);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(resp)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(resp)" ( identifier ))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "starting = (int)puVar4;" (assignment_expression "starting = (int)puVar4" identifier = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }" else (compound_statement "{\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                puVar3 = (uint8_t *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(resp);\n                iVar18 = 0;\n              }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2e44)" ( (binary_expression "PTR_s__00057840 + 0x2e44" identifier + number_literal) ))) ;) (expression_statement "puVar3 = (uint8_t *)0x0;" (assignment_expression "puVar3 = (uint8_t *)0x0" identifier = (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(resp);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(resp)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(resp)" ( identifier ))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }))) })) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005796c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005796c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "puVar4 = (uint8_t *)mx_resp_len;" (assignment_expression "puVar4 = (uint8_t *)mx_resp_len" identifier = (cast_expression "(uint8_t *)mx_resp_len" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) }) (else_clause "else {\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }" else (compound_statement "{\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar18 = -1;\n      }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23c8)" ( (binary_expression "PTR_s__00057840 + 0x23c8" identifier + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }" else (compound_statement "{\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar18 = -1;\n    }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23a4)" ( (binary_expression "PTR_s__00057840 + 0x23a4" identifier + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }))) }) (else_clause "else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }" else (compound_statement "{\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar18 = -1;\n    starting = rt;\n    puVar4 = (uint8_t *)resp;\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2390)" ( (binary_expression "PTR_s__00057840 + 0x2390" identifier + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "starting = rt;" (assignment_expression "starting = rt" identifier = identifier) ;) (expression_statement "puVar4 = (uint8_t *)resp;" (assignment_expression "puVar4 = (uint8_t *)resp" identifier = (cast_expression "(uint8_t *)resp" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {\n    return iVar18;\n  }" if (parenthesized_expression "(puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50)" ( (binary_expression "puVar2 == *(uint8_t **)PTR___stack_chk_guard_00057a50" identifier == (pointer_expression "*(uint8_t **)PTR___stack_chk_guard_00057a50" * (cast_expression "(uint8_t **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar18;\n  }" { (return_statement "return iVar18;" return identifier ;) })) (expression_statement "pcVar19 = sg_ll_get_performance;" (assignment_expression "pcVar19 = sg_ll_get_performance" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_00057a1c;" (assignment_expression "puVar13 = PTR___stack_chk_fail_00057a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00057a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00057a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00057a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00057a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00057a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar10 = local_8c;" (assignment_expression "puVar10 = local_8c" identifier = identifier) ;) (expression_statement "puVar5 = local_90;" (assignment_expression "puVar5 = local_90" identifier = identifier) ;) (expression_statement "puStack_120 = puVar13 + 0x31938;" (assignment_expression "puStack_120 = puVar13 + 0x31938" identifier = (binary_expression "puVar13 + 0x31938" identifier + number_literal)) ;) (expression_statement "pcStack_a4 = pcVar19;" (assignment_expression "pcStack_a4 = pcVar19" identifier = identifier) ;) (expression_statement "pbStack_a8 = unaff_s5;" (assignment_expression "pbStack_a8 = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_ac = unaff_s4;" (assignment_expression "pbStack_ac = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_b0 = verbose;" (assignment_expression "iStack_b0 = verbose" identifier = identifier) ;) (expression_statement "puStack_b4 = unaff_s2;" (assignment_expression "puStack_b4 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_b8 = iVar18;" (assignment_expression "iStack_b8 = iVar18" identifier = identifier) ;) (expression_statement "psStack_bc = unaff_s0;" (assignment_expression "psStack_bc = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_c4 = **(int **)(puVar13 + 0x29b78);" (assignment_expression "iStack_c4 = **(int **)(puVar13 + 0x29b78)" identifier = (pointer_expression "**(int **)(puVar13 + 0x29b78)" * (pointer_expression "*(int **)(puVar13 + 0x29b78)" * (cast_expression "(int **)(puVar13 + 0x29b78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x29b78)" ( (binary_expression "puVar13 + 0x29b78" identifier + number_literal) )))))) ;) (expression_statement "abStack_110[0] = 0xac;" (assignment_expression "abStack_110[0] = 0xac" (subscript_expression "abStack_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_110[1] = 0;" (assignment_expression "abStack_110[1] = 0" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[0] = 0;" (assignment_expression "auStack_10e[0] = 0" (subscript_expression "auStack_10e[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[1] = 0;" (assignment_expression "auStack_10e[1] = 0" (subscript_expression "auStack_10e[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[2] = 0;" (assignment_expression "auStack_10e[2] = 0" (subscript_expression "auStack_10e[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[3] = 0;" (assignment_expression "auStack_10e[3] = 0" (subscript_expression "auStack_10e[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_10a = 0;" (assignment_expression "uStack_10a = 0" identifier = number_literal) ;) (expression_statement "uStack_109 = 0;" (assignment_expression "uStack_109 = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_106 = 0;" (assignment_expression "uStack_106 = 0" identifier = number_literal) ;) (expression_statement "uStack_105 = 0;" (assignment_expression "uStack_105 = 0" identifier = number_literal) ;) (if_statement "if ((uint)starting < (uint8_t *)0x20) {\n    abStack_110[1] = (char)starting;\n    pbVar17 = abStack_110 + 2;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;\n    pbVar17 = abStack_110 + 5;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;\n    verbose = (int)puVar2;\n    puStack_114 = puVar3;\n    if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }\n  }\n  else {\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }" if (parenthesized_expression "((uint)starting < (uint8_t *)0x20)" ( (binary_expression "(uint)starting < (uint8_t *)0x20" (cast_expression "(uint)starting" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint8_t *)0x20" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    abStack_110[1] = (char)starting;\n    pbVar17 = abStack_110 + 2;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;\n    pbVar17 = abStack_110 + 5;\n    uVar1 = (uint)pbVar17 & 3;\n    *(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;\n    verbose = (int)puVar2;\n    puStack_114 = puVar3;\n    if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }\n  }" { (expression_statement "abStack_110[1] = (char)starting;" (assignment_expression "abStack_110[1] = (char)starting" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = (cast_expression "(char)starting" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar17 = abStack_110 + 2;" (assignment_expression "pbVar17 = abStack_110 + 2" identifier = (binary_expression "abStack_110 + 2" identifier + number_literal)) ;) (expression_statement "uVar1 = (uint)pbVar17 & 3;" (assignment_expression "uVar1 = (uint)pbVar17 & 3" identifier = (binary_expression "(uint)pbVar17 & 3" (cast_expression "(uint)pbVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8;" (assignment_expression "*(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8" (pointer_expression "*(uint *)(pbVar17 + -uVar1)" * (cast_expression "(uint *)(pbVar17 + -uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + -uVar1)" ( (binary_expression "pbVar17 + -uVar1" identifier + (unary_expression "-uVar1" - identifier)) )))) = (binary_expression "*(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8 | (uint)puVar3 >> uVar1 * 8" (binary_expression "*(uint *)(pbVar17 + -uVar1) & -1 << (4 - uVar1) * 8" (pointer_expression "*(uint *)(pbVar17 + -uVar1)" * (cast_expression "(uint *)(pbVar17 + -uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + -uVar1)" ( (binary_expression "pbVar17 + -uVar1" identifier + (unary_expression "-uVar1" - identifier)) )))) & (binary_expression "-1 << (4 - uVar1) * 8" number_literal << (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)puVar3 >> uVar1 * 8" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar1 * 8" identifier * number_literal)))) ;) (expression_statement "pbVar17 = abStack_110 + 5;" (assignment_expression "pbVar17 = abStack_110 + 5" identifier = (binary_expression "abStack_110 + 5" identifier + number_literal)) ;) (expression_statement "uVar1 = (uint)pbVar17 & 3;" (assignment_expression "uVar1 = (uint)pbVar17 & 3" identifier = (binary_expression "(uint)pbVar17 & 3" (cast_expression "(uint)pbVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8;" (assignment_expression "*(uint *)(pbVar17 + -uVar1) =\n         *(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8" (pointer_expression "*(uint *)(pbVar17 + -uVar1)" * (cast_expression "(uint *)(pbVar17 + -uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + -uVar1)" ( (binary_expression "pbVar17 + -uVar1" identifier + (unary_expression "-uVar1" - identifier)) )))) = (binary_expression "*(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8 |\n         (int)puVar3 << (3 - uVar1) * 8" (binary_expression "*(uint *)(pbVar17 + -uVar1) & 0xffffffffU >> (uVar1 + 1) * 8" (pointer_expression "*(uint *)(pbVar17 + -uVar1)" * (cast_expression "(uint *)(pbVar17 + -uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + -uVar1)" ( (binary_expression "pbVar17 + -uVar1" identifier + (unary_expression "-uVar1" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar1 + 1) * 8" number_literal >> (binary_expression "(uVar1 + 1) * 8" (parenthesized_expression "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)puVar3 << (3 - uVar1) * 8" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar1) * 8" (parenthesized_expression "(3 - uVar1)" ( (binary_expression "3 - uVar1" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "verbose = (int)puVar2;" (assignment_expression "verbose = (int)puVar2" identifier = (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puStack_114 = puVar3;" (assignment_expression "puStack_114 = puVar3" identifier = identifier) ;) (if_statement "if (puVar4 < "\x7fELF\x01\x02\x01") {\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }\n    else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }" if (parenthesized_expression "(puVar4 < "\x7fELF\x01\x02\x01")" ( (binary_expression "puVar4 < "\x7fELF\x01\x02\x01"" identifier < (string_literal ""\x7fELF\x01\x02\x01"" " escape_sequence string_content escape_sequence escape_sequence escape_sequence ")) )) (compound_statement "{\n      uStack_108 = SUB42(puVar4,0);\n      if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }\n    }" { (expression_statement "uStack_108 = SUB42(puVar4,0);" (assignment_expression "uStack_108 = SUB42(puVar4,0)" identifier = (call_expression "SUB42(puVar4,0)" identifier (argument_list "(puVar4,0)" ( identifier , number_literal )))) ;) (if_statement "if (puVar5 < (uint8_t *)0x100) {\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }\n      else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }" if (parenthesized_expression "(puVar5 < (uint8_t *)0x100)" ( (binary_expression "puVar5 < (uint8_t *)0x100" identifier < (cast_expression "(uint8_t *)0x100" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_106 = SUB41(puVar5,0);\n        (**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);\n        pbVar17 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));\n        if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }\n      }" { (expression_statement "uStack_106 = SUB41(puVar5,0);" (assignment_expression "uStack_106 = SUB41(puVar5,0)" identifier = (call_expression "SUB41(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c);" (call_expression "(**(code **)(puVar13 + 0x29a14))\n                  (*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c)" (parenthesized_expression "(**(code **)(puVar13 + 0x29a14))" ( (pointer_expression "**(code **)(puVar13 + 0x29a14)" * (pointer_expression "*(code **)(puVar13 + 0x29a14)" * (cast_expression "(code **)(puVar13 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x29a14)" ( (binary_expression "puVar13 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x29968) + 0x17c0,*(int *)(puVar13 + 0x29968) + 0x244c)" ( (binary_expression "*(int *)(puVar13 + 0x29968) + 0x17c0" (pointer_expression "*(int *)(puVar13 + 0x29968)" * (cast_expression "(int *)(puVar13 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x29968)" ( (binary_expression "puVar13 + 0x29968" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar13 + 0x29968) + 0x244c" (pointer_expression "*(int *)(puVar13 + 0x29968)" * (cast_expression "(int *)(puVar13 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x29968)" ( (binary_expression "puVar13 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar17 = abStack_110;" (assignment_expression "pbVar17 = abStack_110" identifier = identifier) ;) (expression_statement "unaff_s5 = abStack_104;" (assignment_expression "unaff_s5 = abStack_104" identifier = identifier) ;) (expression_statement "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);" (assignment_expression "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" identifier = (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd4) + 0x511c" (pointer_expression "*(int *)(puStack_120 + -0x7fd4)" * (cast_expression "(int *)(puStack_120 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd4)" ( (binary_expression "puStack_120 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        } while (pbVar17 != unaff_s5);" do (compound_statement "{\n          starting = (int)*pbVar17;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar17 = pbVar17 + 1;\n        }" { (expression_statement "starting = (int)*pbVar17;" (assignment_expression "starting = (int)*pbVar17" identifier = (cast_expression "(int)*pbVar17" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(unaff_s4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != unaff_s5)" ( (binary_expression "pbVar17 != unaff_s5" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c));" (assignment_expression "unaff_s0 = create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c))" identifier = (call_expression "create_pt_obj((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c))" identifier (argument_list "((char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c))" ( (cast_expression "(char *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (unaff_s0 == (sg_pt_base *)0x0) {\n          iVar18 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }" if (parenthesized_expression "(unaff_s0 == (sg_pt_base *)0x0)" ( (binary_expression "unaff_s0 == (sg_pt_base *)0x0" identifier == (cast_expression "(sg_pt_base *)0x0" ( (type_descriptor "sg_pt_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar18 = -1;\n        }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }" else (compound_statement "{\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);\n          puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp;\n          uStack_12c = (uint)local_84 & 0xff;\n          starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;\n          puVar4 = local_88;\n          pbStack_130 = unaff_s4;\n          puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          verbose = (int)puVar2;\n        }" { (expression_statement "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);" (call_expression "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_120 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_120 + -0x7fb0)" * (cast_expression "(code **)(puStack_120 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7fb0)" ( (binary_expression "puStack_120 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,abStack_110,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s4 = abStack_104;" (assignment_expression "unaff_s4 = abStack_104" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);" (call_expression "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_120 + -0x7f1c)" * (cast_expression "(code **)(puStack_120 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f1c)" ( (binary_expression "puStack_120 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88);" (call_expression "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar10,local_88)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7d8c)" * (cast_expression "(code **)(puStack_120 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d8c)" ( (binary_expression "puStack_120 + -0x7d8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,puVar10,local_88)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp);" (assignment_expression "puVar3 = (uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp)" identifier = (cast_expression "(uint8_t *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,puVar2,0x3c,&_gp)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7e8c)" * (cast_expression "(code **)(puStack_120 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7e8c)" ( (binary_expression "puStack_120 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,puVar2,0x3c,&_gp)" ( identifier , identifier , number_literal , (pointer_expression "&_gp" & identifier) ))))) ;) (expression_statement "piStack_124 = &iStack_118;" (assignment_expression "piStack_124 = &iStack_118" identifier = (pointer_expression "&iStack_118" & identifier)) ;) (expression_statement "puStack_128 = &_gp;" (assignment_expression "puStack_128 = &_gp" identifier = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "uStack_12c = (uint)local_84 & 0xff;" (assignment_expression "uStack_12c = (uint)local_84 & 0xff" identifier = (binary_expression "(uint)local_84 & 0xff" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c;" (assignment_expression "starting = *(int *)(puStack_120 + -0x7fd0) + 0x244c" identifier = (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar4 = local_88;" (assignment_expression "puVar4 = local_88" identifier = identifier) ;) (expression_statement "pbStack_130 = unaff_s4;" (assignment_expression "pbStack_130 = unaff_s4" identifier = identifier) ;) (expression_statement "puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);" (assignment_expression "puVar5 = (uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" identifier = (cast_expression "(uint8_t *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f40)" * (pointer_expression "*(code **)(puStack_120 + -0x7f40)" * (cast_expression "(code **)(puStack_120 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f40)" ( (binary_expression "puStack_120 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (puVar5 == (uint8_t *)0xffffffff) {\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }\n          else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }" if (parenthesized_expression "(puVar5 == (uint8_t *)0xffffffff)" ( (binary_expression "puVar5 == (uint8_t *)0xffffffff" identifier == (cast_expression "(uint8_t *)0xffffffff" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);\n          }" { (expression_statement "uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);" (assignment_expression "uVar7 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7d70))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d70))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d70)" * (pointer_expression "*(code **)(puStack_120 + -0x7d70)" * (cast_expression "(code **)(puStack_120 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d70)" ( (binary_expression "puStack_120 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7);" (assignment_expression "iVar18 = (**(code **)(puStack_120 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_120 + -0x7ee8)" * (cast_expression "(code **)(puStack_120 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ee8)" ( (binary_expression "puStack_120 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }" else (if_statement "if (puVar5 == (uint8_t *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }\n          else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }" if (parenthesized_expression "(puVar5 == (uint8_t *)0xfffffffe)" ( (binary_expression "puVar5 == (uint8_t *)0xfffffffe" identifier == (cast_expression "(uint8_t *)0xfffffffe" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }\n            iVar18 = -1;\n          }" { (if_statement "if (iStack_118 - 5U < 0x11) {\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }" if (parenthesized_expression "(iStack_118 - 5U < 0x11)" ( (binary_expression "iStack_118 - 5U < 0x11" (binary_expression "iStack_118 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar18;\n            }" { comment comment (expression_statement "iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();" (assignment_expression "iVar18 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" identifier = (call_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" (parenthesized_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))" ( (pointer_expression "*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" * (cast_expression "(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (binary_expression "puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" * (cast_expression "(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4" (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "(iStack_118 - 5U) * 4" (parenthesized_expression "(iStack_118 - 5U)" ( (binary_expression "iStack_118 - 5U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar18;" return identifier ;) })) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }" else (compound_statement "{\n            starting = *(int *)(puStack_120 + -0x7fd0);\n            if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }\n          }" { (expression_statement "starting = *(int *)(puStack_120 + -0x7fd0);" (assignment_expression "starting = *(int *)(puStack_120 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if ((int)puVar5 < 4) {\n              iVar18 = 0;\n            }\n            else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }" if (parenthesized_expression "((int)puVar5 < 4)" ( (binary_expression "(int)puVar5 < 4" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar18 = 0;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }" else (compound_statement "{\n              puStack_114 = (uint8_t *)*puVar10;\n              puVar2 = puStack_114;\n              if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }\n              if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              puVar3 = (uint8_t *)0x0;\n              starting = (int)puVar2;\n              (**(code **)(puStack_120 + -0x7f74))(puVar10);\n              iVar18 = 0;\n            }" { (expression_statement "puStack_114 = (uint8_t *)*puVar10;" (assignment_expression "puStack_114 = (uint8_t *)*puVar10" identifier = (cast_expression "(uint8_t *)*puVar10" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "puVar2 = puStack_114;" (assignment_expression "puVar2 = puStack_114" identifier = identifier) ;) (if_statement "if ((int)puStack_114 < 0) {\n                puVar2 = (uint8_t *)0x0;\n              }" if (parenthesized_expression "((int)puStack_114 < 0)" ( (binary_expression "(int)puStack_114 < 0" (cast_expression "(int)puStack_114" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                puVar2 = (uint8_t *)0x0;\n              }" { (expression_statement "puVar2 = (uint8_t *)0x0;" (assignment_expression "puVar2 = (uint8_t *)0x0" identifier = (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)puVar5 <= (int)puVar2) {\n                puVar2 = puVar5;\n              }" if (parenthesized_expression "((int)puVar5 <= (int)puVar2)" ( (binary_expression "(int)puVar5 <= (int)puVar2" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                puVar2 = puVar5;\n              }" { (expression_statement "puVar2 = puVar5;" (assignment_expression "puVar2 = puVar5" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c));" (call_expression "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c))" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,(uint8_t *)(starting + 0x244c))" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x1b3c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(uint8_t *)(starting + 0x244c)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(starting + 0x244c)" ( (binary_expression "starting + 0x244c" identifier + number_literal) ))) ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x2e44" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar3 = (uint8_t *)0x0;" (assignment_expression "puVar3 = (uint8_t *)0x0" identifier = (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "starting = (int)puVar2;" (assignment_expression "starting = (int)puVar2" identifier = (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f74))(puVar10);" (call_expression "(**(code **)(puStack_120 + -0x7f74))(puVar10)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f74)" * (pointer_expression "*(code **)(puStack_120 + -0x7f74)" * (cast_expression "(code **)(puStack_120 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f74)" ( (binary_expression "puStack_120 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) }))) }))))) (expression_statement "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0);" (call_expression "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_120 + -0x7ea4)" * (cast_expression "(code **)(puStack_120 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ea4)" ( (binary_expression "puStack_120 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "verbose = (int)puVar2;" (assignment_expression "verbose = (int)puVar2" identifier = (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }" else (compound_statement "{\n        (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);\n        iVar18 = -1;\n        starting = (int)puVar5;\n      }" { (expression_statement "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c);" (call_expression "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x243c)" (parenthesized_expression "(**(code **)(puVar13 + 0x29a14))" ( (pointer_expression "**(code **)(puVar13 + 0x29a14)" * (pointer_expression "*(code **)(puVar13 + 0x29a14)" * (cast_expression "(code **)(puVar13 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x29a14)" ( (binary_expression "puVar13 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x29968) + 0x243c)" ( (binary_expression "*(int *)(puVar13 + 0x29968) + 0x243c" (pointer_expression "*(int *)(puVar13 + 0x29968)" * (cast_expression "(int *)(puVar13 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x29968)" ( (binary_expression "puVar13 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "starting = (int)puVar5;" (assignment_expression "starting = (int)puVar5" identifier = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }" else (compound_statement "{\n      puVar2 = puVar4;\n      (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);\n      iVar18 = -1;\n      starting = (int)puVar4;\n      puVar4 = puVar2;\n    }" { (expression_statement "puVar2 = puVar4;" (assignment_expression "puVar2 = puVar4" identifier = identifier) ;) (expression_statement "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424);" (call_expression "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2424)" (parenthesized_expression "(**(code **)(puVar13 + 0x29a14))" ( (pointer_expression "**(code **)(puVar13 + 0x29a14)" * (pointer_expression "*(code **)(puVar13 + 0x29a14)" * (cast_expression "(code **)(puVar13 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x29a14)" ( (binary_expression "puVar13 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x29968) + 0x2424)" ( (binary_expression "*(int *)(puVar13 + 0x29968) + 0x2424" (pointer_expression "*(int *)(puVar13 + 0x29968)" * (cast_expression "(int *)(puVar13 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x29968)" ( (binary_expression "puVar13 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "starting = (int)puVar4;" (assignment_expression "starting = (int)puVar4" identifier = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar4 = puVar2;" (assignment_expression "puVar4 = puVar2" identifier = identifier) ;) }))) }) (else_clause "else {\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }" else (compound_statement "{\n    (**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);\n    iVar18 = -1;\n  }" { (expression_statement "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408);" (call_expression "(**(code **)(puVar13 + 0x29a14))(*(int *)(puVar13 + 0x29968) + 0x2408)" (parenthesized_expression "(**(code **)(puVar13 + 0x29a14))" ( (pointer_expression "**(code **)(puVar13 + 0x29a14)" * (pointer_expression "*(code **)(puVar13 + 0x29a14)" * (cast_expression "(code **)(puVar13 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x29a14)" ( (binary_expression "puVar13 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x29968) + 0x2408)" ( (binary_expression "*(int *)(puVar13 + 0x29968) + 0x2408" (pointer_expression "*(int *)(puVar13 + 0x29968)" * (cast_expression "(int *)(puVar13 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x29968)" ( (binary_expression "puVar13 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }))) (if_statement "if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar18;\n  }" if (parenthesized_expression "(iStack_c4 == **(int **)(puStack_120 + -0x7dc0))" ( (binary_expression "iStack_c4 == **(int **)(puStack_120 + -0x7dc0)" identifier == (pointer_expression "**(int **)(puStack_120 + -0x7dc0)" * (pointer_expression "*(int **)(puStack_120 + -0x7dc0)" * (cast_expression "(int **)(puStack_120 + -0x7dc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7dc0)" ( (binary_expression "puStack_120 + -0x7dc0" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar18;\n  }" { (return_statement "return iVar18;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(puStack_120 + -0x7df4);" (assignment_expression "pcVar19 = *(code **)(puStack_120 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_120 + -0x7df4)" * (cast_expression "(code **)(puStack_120 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7df4)" ( (binary_expression "puStack_120 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = sg_ll_set_streaming;" (assignment_expression "pcVar20 = sg_ll_set_streaming" identifier = identifier) ;) (expression_statement "iVar8 = iStack_c4;" (assignment_expression "iVar8 = iStack_c4" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = uStack_12c;" (assignment_expression "uVar1 = uStack_12c" identifier = identifier) ;) (expression_statement "pcStack_1c0 = pcVar19 + 0x314e8;" (assignment_expression "pcStack_1c0 = pcVar19 + 0x314e8" identifier = (binary_expression "pcVar19 + 0x314e8" identifier + number_literal)) ;) (expression_statement "puStack_158 = puVar10;" (assignment_expression "puStack_158 = puVar10" identifier = identifier) ;) (expression_statement "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728);" (assignment_expression "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29728)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x29728)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x29728)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x29728)" * (cast_expression "(undefined4 **)(pcVar19 + 0x29728)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x29728)" ( (binary_expression "pcVar19 + 0x29728" identifier + number_literal) ))))))) ;) (expression_statement "abStack_1b0[0] = 0xb6;" (assignment_expression "abStack_1b0[0] = 0xb6" (subscript_expression "abStack_1b0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[1] = 0;" (assignment_expression "abStack_1b0[1] = 0" (subscript_expression "abStack_1b0[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[2] = 0;" (assignment_expression "abStack_1b0[2] = 0" (subscript_expression "abStack_1b0[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[3] = 0;" (assignment_expression "abStack_1b0[3] = 0" (subscript_expression "abStack_1b0[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[4] = 0;" (assignment_expression "abStack_1b0[4] = 0" (subscript_expression "abStack_1b0[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[5] = 0;" (assignment_expression "abStack_1b0[5] = 0" (subscript_expression "abStack_1b0[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[6] = 0;" (assignment_expression "abStack_1b0[6] = 0" (subscript_expression "abStack_1b0[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[7] = 0;" (assignment_expression "abStack_1b0[7] = 0" (subscript_expression "abStack_1b0[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[0xb] = 0;" (assignment_expression "abStack_1b0[0xb] = 0" (subscript_expression "abStack_1b0[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[8] = (byte)starting;" (assignment_expression "abStack_1b0[8] = (byte)starting" (subscript_expression "abStack_1b0[8]" identifier [ number_literal ]) = (cast_expression "(byte)starting" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_);" (assignment_expression "uStack_1b4 = CONCAT22((short)puVar4,uStack_1b4._2_2_)" identifier = (call_expression "CONCAT22((short)puVar4,uStack_1b4._2_2_)" identifier (argument_list "((short)puVar4,uStack_1b4._2_2_)" ( (cast_expression "(short)puVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "uStack_1b4._2_2_" identifier . field_identifier) )))) ;) (expression_statement "abStack_1b0[9] = (byte)((uint)puVar4 >> 8);" (assignment_expression "abStack_1b0[9] = (byte)((uint)puVar4 >> 8)" (subscript_expression "abStack_1b0[9]" identifier [ number_literal ]) = (call_expression "(byte)((uint)puVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)puVar4 >> 8)" ( (binary_expression "(uint)puVar4 >> 8" (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "abStack_1b0[10] = (byte)puVar4;" (assignment_expression "abStack_1b0[10] = (byte)puVar4" (subscript_expression "abStack_1b0[10]" identifier [ number_literal ]) = (cast_expression "(byte)puVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "psStack_160 = unaff_s0;" (assignment_expression "psStack_160 = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_15c = iVar18;" (assignment_expression "iStack_15c = iVar18" identifier = identifier) ;) (expression_statement "puStack_154 = (uint8_t *)verbose;" (assignment_expression "puStack_154 = (uint8_t *)verbose" identifier = (cast_expression "(uint8_t *)verbose" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbStack_150 = unaff_s4;" (assignment_expression "pbStack_150 = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_14c = unaff_s5;" (assignment_expression "pbStack_14c = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_148 = unaff_s6;" (assignment_expression "pbStack_148 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_144 = pcVar20;" (assignment_expression "pcStack_144 = pcVar20" identifier = identifier) ;) (if_statement "if (uStack_12c != 0) {\n    (**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);\n    pbVar17 = abStack_1b0;\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);\n    pbVar17 = abStack_1b0;\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" { (expression_statement "(**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c);" (call_expression "(**(code **)(pcVar19 + 0x295c4))\n              (*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c)" (parenthesized_expression "(**(code **)(pcVar19 + 0x295c4))" ( (pointer_expression "**(code **)(pcVar19 + 0x295c4)" * (pointer_expression "*(code **)(pcVar19 + 0x295c4)" * (cast_expression "(code **)(pcVar19 + 0x295c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x295c4)" ( (binary_expression "pcVar19 + 0x295c4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar19 + 0x29518) + 0x17c0,*(int *)(pcVar19 + 0x29518) + 0x245c)" ( (binary_expression "*(int *)(pcVar19 + 0x29518) + 0x17c0" (pointer_expression "*(int *)(pcVar19 + 0x29518)" * (cast_expression "(int *)(pcVar19 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x29518)" ( (binary_expression "pcVar19 + 0x29518" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar19 + 0x29518) + 0x245c" (pointer_expression "*(int *)(pcVar19 + 0x29518)" * (cast_expression "(int *)(pcVar19 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x29518)" ( (binary_expression "pcVar19 + 0x29518" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar17 = abStack_1b0;" (assignment_expression "pbVar17 = abStack_1b0" identifier = identifier) ;) (expression_statement "iVar18 = *(int *)(pcStack_1c0 + -0x7fd4);" (assignment_expression "iVar18 = *(int *)(pcStack_1c0 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd4)" ( (binary_expression "pcStack_1c0 + -0x7fd4" identifier + number_literal) ))))) ;) (do_statement "do {\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    } while (pbVar17 != abStack_1b0 + 0xc);" do (compound_statement "{\n      starting = (int)*pbVar17;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);\n      pbVar17 = pbVar17 + 1;\n    }" { (expression_statement "starting = (int)*pbVar17;" (assignment_expression "starting = (int)*pbVar17" identifier = (cast_expression "(int)*pbVar17" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(iVar18 + 0x511c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar18 + 0x511c)" ( (binary_expression "iVar18 + 0x511c" identifier + number_literal) ))) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != abStack_1b0 + 0xc)" ( (binary_expression "pbVar17 != abStack_1b0 + 0xc" identifier != (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)) goto LAB_0002e3c0;" if (parenthesized_expression "(((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0))" ( (binary_expression "((int)uVar1 < 2) || (puVar3 == (uint8_t *)0x0)" (parenthesized_expression "((int)uVar1 < 2)" ( (binary_expression "(int)uVar1 < 2" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(puVar3 == (uint8_t *)0x0)" ( (binary_expression "puVar3 == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;)) (expression_statement "starting = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "starting = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 != (uint8_t *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" if (parenthesized_expression "(puVar4 != (uint8_t *)0x0)" ( (binary_expression "puVar4 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));\n      starting = (int)puVar4;\n      (**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);\n      iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c));" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c))" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,(uint8_t *)(starting + 0x245c))" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (cast_expression "(uint8_t *)(starting + 0x245c)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(starting + 0x245c)" ( (binary_expression "starting + 0x245c" identifier + number_literal) ))) ))) ;) (expression_statement "starting = (int)puVar4;" (assignment_expression "starting = (int)puVar4" identifier = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f74))(puVar3,puVar4,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f74)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f74)" ( (binary_expression "pcStack_1c0 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar3,puVar4,0xffffffff)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;) })) })) (expression_statement "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar18 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e3c0:\n  psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));" statement_identifier : (expression_statement "psVar6 = create_pt_obj((char *)(iVar18 + 0x245c));" (assignment_expression "psVar6 = create_pt_obj((char *)(iVar18 + 0x245c))" identifier = (call_expression "create_pt_obj((char *)(iVar18 + 0x245c))" identifier (argument_list "((char *)(iVar18 + 0x245c))" ( (cast_expression "(char *)(iVar18 + 0x245c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x245c)" ( (binary_expression "iVar18 + 0x245c" identifier + number_literal) ))) )))) ;)) (if_statement "if (psVar6 == (sg_pt_base *)0x0) {\n    iVar18 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }" if (parenthesized_expression "(psVar6 == (sg_pt_base *)0x0)" ( (binary_expression "psVar6 == (sg_pt_base *)0x0" identifier == (cast_expression "(sg_pt_base *)0x0" ( (type_descriptor "sg_pt_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar18 = -1;\n  }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);\n    uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar1;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);\n    if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);\n  }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc);" (call_expression "(**(code **)(pcStack_1c0 + -0x7fb0))(psVar6,abStack_1b0,0xc)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1c0 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7fb0)" ( (binary_expression "pcStack_1c0 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(psVar6,abStack_1b0,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f1c))(psVar6,abStack_1b0 + 0xc,0x40)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f1c)" ( (binary_expression "pcStack_1c0 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(psVar6,abStack_1b0 + 0xc,0x40)" ( identifier , (binary_expression "abStack_1b0 + 0xc" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4);" (call_expression "(**(code **)(pcStack_1c0 + -0x7d98))(psVar6,puVar3,puVar4)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d98))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d98)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d98)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d98)" ( (binary_expression "pcStack_1c0 + -0x7d98" identifier + number_literal) ))))) )) (argument_list "(psVar6,puVar3,puVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1);" (assignment_expression "uVar7 = (**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7e8c))(psVar6,iVar8,0x3c,uVar1)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7e8c)" ( (binary_expression "pcStack_1c0 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(psVar6,iVar8,0x3c,uVar1)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "puStack_1c4 = &uStack_1b4;" (assignment_expression "puStack_1c4 = &uStack_1b4" identifier = (pointer_expression "&uStack_1b4" & identifier)) ;) (expression_statement "uStack_1c8 = uVar1;" (assignment_expression "uStack_1c8 = uVar1" identifier = identifier) ;) (expression_statement "uStack_1cc = (uint)pbStack_130 & 0xff;" (assignment_expression "uStack_1cc = (uint)pbStack_130 & 0xff" identifier = (binary_expression "(uint)pbStack_130 & 0xff" (cast_expression "(uint)pbStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c;" (assignment_expression "starting = *(int *)(pcStack_1c0 + -0x7fd0) + 0x245c" identifier = (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbStack_1d0 = abStack_1b0 + 0xc;" (assignment_expression "pbStack_1d0 = abStack_1b0 + 0xc" identifier = (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0);" (assignment_expression "iVar8 = (**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7f40))(psVar6,starting,uVar7,0)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f40)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f40)" ( (binary_expression "pcStack_1c0 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(psVar6,starting,uVar7,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar8 == -1) {\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }\n    else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);\n      iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);\n    }" { (expression_statement "uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6);" (assignment_expression "uVar7 = (**(code **)(pcStack_1c0 + -0x7d70))(psVar6)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7d70))(psVar6)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d70))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d70)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d70)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d70)" ( (binary_expression "pcStack_1c0 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(psVar6)" ( identifier )))) ;) (expression_statement "iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7);" (assignment_expression "iVar18 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar7)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7ee8))(uVar7)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ee8)" ( (binary_expression "pcStack_1c0 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar7)" ( identifier )))) ;) }) (else_clause "else {\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }" else (compound_statement "{\n      iVar18 = 0;\n      if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }" if (parenthesized_expression "(iVar8 == -2)" ( (binary_expression "iVar8 == -2" identifier == number_literal) )) (compound_statement "{\n        if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }\n        iVar18 = -1;\n      }" { (if_statement "if (uStack_1b4 < 0x16) {\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }" if (parenthesized_expression "(uStack_1b4 < 0x16)" ( (binary_expression "uStack_1b4 < 0x16" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar18;\n        }" { comment comment (expression_statement "iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();" (assignment_expression "iVar18 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" identifier = (call_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" (parenthesized_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))" ( (pointer_expression "*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" * (parenthesized_expression "(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" ( (binary_expression "pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" * (cast_expression "(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4" (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_1b4 * 4" identifier * number_literal)) ))))) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar18;" return identifier ;) })) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) })) }))) (expression_statement "(**(code **)(pcStack_1c0 + -0x7ea4))(psVar6);" (call_expression "(**(code **)(pcStack_1c0 + -0x7ea4))(psVar6)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ea4)" ( (binary_expression "pcStack_1c0 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(psVar6)" ( identifier ))) ;) }))) (if_statement "if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar18;\n  }" if (parenthesized_expression "(puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0))" ( (binary_expression "puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (pointer_expression "*(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (cast_expression "(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7dc0)" ( (binary_expression "pcStack_1c0 + -0x7dc0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return iVar18;\n  }" { (return_statement "return iVar18;" return identifier ;) })) (expression_statement "pcVar19 = *(code **)(pcStack_1c0 + -0x7df4);" (assignment_expression "pcVar19 = *(code **)(pcStack_1c0 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1c0 + -0x7df4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7df4)" ( (binary_expression "pcStack_1c0 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = 0x2e638;" (assignment_expression "uVar7 = 0x2e638" identifier = number_literal) ;) (expression_statement "puVar10 = puStack_164;" (assignment_expression "puVar10 = puStack_164" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_208 = pcVar19 + 0x311d0;" (assignment_expression "pcStack_208 = pcVar19 + 0x311d0" identifier = (binary_expression "pcVar19 + 0x311d0" identifier + number_literal)) ;) (expression_statement "puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410);" (assignment_expression "puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar19 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x29410)" ( (binary_expression "pcVar19 + 0x29410" identifier + number_literal) ))))))) ;) (expression_statement "uStack_1fc = 0x20e8080;" (assignment_expression "uStack_1fc = 0x20e8080" identifier = number_literal) ;) (expression_statement "uStack_1f8 = 0xa0000;" (assignment_expression "uStack_1f8 = 0xa0000" identifier = number_literal) ;) (expression_statement "uStack_1f4 = 0;" (assignment_expression "uStack_1f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_1f0 = 0;" (assignment_expression "uStack_1f0 = 0" identifier = number_literal) ;) (expression_statement "*puVar10 = 0x20e8080;" (assignment_expression "*puVar10 = 0x20e8080" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10[1] = 0xa0000;" (assignment_expression "puVar10[1] = 0xa0000" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[3] = 0;" (assignment_expression "puVar10[3] = 0" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((uint8_t *)starting == (uint8_t *)0x1) {\n    *(undefined1 *)((int)puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 3) = 0;\n    *(undefined1 *)(puVar10 + 1) = 0;\n    *(undefined1 *)((int)puVar10 + 5) = 0;\n    *(undefined1 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 7) = 0;\n    *(undefined1 *)(puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 9) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n    *(undefined1 *)(puVar10 + 3) = 0;\n    *(undefined1 *)((int)puVar10 + 0xd) = 0;\n    *(undefined1 *)((int)puVar10 + 0xe) = 0;\n    *(undefined1 *)((int)puVar10 + 0xf) = 0;\n  }" if (parenthesized_expression "((uint8_t *)starting == (uint8_t *)0x1)" ( (binary_expression "(uint8_t *)starting == (uint8_t *)0x1" (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(uint8_t *)0x1" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)((int)puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 3) = 0;\n    *(undefined1 *)(puVar10 + 1) = 0;\n    *(undefined1 *)((int)puVar10 + 5) = 0;\n    *(undefined1 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 7) = 0;\n    *(undefined1 *)(puVar10 + 2) = 0;\n    *(undefined1 *)((int)puVar10 + 9) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n    *(undefined1 *)(puVar10 + 3) = 0;\n    *(undefined1 *)((int)puVar10 + 0xd) = 0;\n    *(undefined1 *)((int)puVar10 + 0xe) = 0;\n    *(undefined1 *)((int)puVar10 + 0xf) = 0;\n  }" { (expression_statement "*(undefined1 *)((int)puVar10 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 2)" * (cast_expression "(undefined1 *)((int)puVar10 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 2)" ( (binary_expression "(int)puVar10 + 2" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 3)" * (cast_expression "(undefined1 *)((int)puVar10 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 3)" ( (binary_expression "(int)puVar10 + 3" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar10 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar10 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar10 + 1)" * (cast_expression "(undefined1 *)(puVar10 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 1)" ( (binary_expression "puVar10 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 5)" * (cast_expression "(undefined1 *)((int)puVar10 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 5)" ( (binary_expression "(int)puVar10 + 5" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 6)" * (cast_expression "(undefined1 *)((int)puVar10 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 6)" ( (binary_expression "(int)puVar10 + 6" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 7)" * (cast_expression "(undefined1 *)((int)puVar10 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 7)" ( (binary_expression "(int)puVar10 + 7" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar10 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar10 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar10 + 2)" * (cast_expression "(undefined1 *)(puVar10 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 9)" * (cast_expression "(undefined1 *)((int)puVar10 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 9)" ( (binary_expression "(int)puVar10 + 9" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 10)" * (cast_expression "(undefined1 *)((int)puVar10 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 10)" ( (binary_expression "(int)puVar10 + 10" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar10 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0xb)" ( (binary_expression "(int)puVar10 + 0xb" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar10 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar10 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar10 + 3)" * (cast_expression "(undefined1 *)(puVar10 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 3)" ( (binary_expression "puVar10 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar10 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0xd)" ( (binary_expression "(int)puVar10 + 0xd" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar10 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0xe)" ( (binary_expression "(int)puVar10 + 0xe" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar10 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0xf)" ( (binary_expression "(int)puVar10 + 0xf" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)) {\n    return 0x10;\n  }" if (parenthesized_expression "(puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410))" ( (binary_expression "puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar19 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x29410)" ( (binary_expression "pcVar19 + 0x29410" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x293dc);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x293dc)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x293dc)" * (cast_expression "(code **)(pcVar19 + 0x293dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x293dc)" ( (binary_expression "pcVar19 + 0x293dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = resp_ctrl_m_pg;" (assignment_expression "pcVar20 = resp_ctrl_m_pg" identifier = identifier) ;) (expression_statement "puStack_1ec = puVar9;" (assignment_expression "puStack_1ec = puVar9" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar7;" (assignment_expression "uStack_1e4 = uVar7" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_248 = pcVar19 + 0x310b8;" (assignment_expression "pcStack_248 = pcVar19 + 0x310b8" identifier = (binary_expression "pcVar19 + 0x310b8" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8);" (assignment_expression "puVar10 = (undefined4 *)**(int **)(pcVar19 + 0x292f8)" identifier = (cast_expression "(undefined4 *)**(int **)(pcVar19 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar19 + 0x292f8)" * (pointer_expression "*(int **)(pcVar19 + 0x292f8)" * (cast_expression "(int **)(pcVar19 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x292f8)" ( (binary_expression "pcVar19 + 0x292f8" identifier + number_literal) ))))))) ;) (expression_statement "iVar8 = *(int *)(pcVar19 + 0x290d4);" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x290d4)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x290d4)" * (cast_expression "(int *)(pcVar19 + 0x290d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x290d4)" ( (binary_expression "pcVar19 + 0x290d4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar8 + 0x7700);" (assignment_expression "uVar11 = *(undefined4 *)(iVar8 + 0x7700)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x7700)" * (cast_expression "(undefined4 *)(iVar8 + 0x7700)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x7700)" ( (binary_expression "iVar8 + 0x7700" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar8 + 0x7704);" (assignment_expression "uVar7 = *(undefined4 *)(iVar8 + 0x7704)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x7704)" * (cast_expression "(undefined4 *)(iVar8 + 0x7704)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x7704)" ( (binary_expression "iVar8 + 0x7704" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = *(undefined4 *)(iVar8 + 0x76fc);" (assignment_expression "*puVar9 = *(undefined4 *)(iVar8 + 0x76fc)" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*(undefined4 *)(iVar8 + 0x76fc)" * (cast_expression "(undefined4 *)(iVar8 + 0x76fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76fc)" ( (binary_expression "iVar8 + 0x76fc" identifier + number_literal) ))))) ;) (expression_statement "puVar9[1] = uVar11;" (assignment_expression "puVar9[1] = uVar11" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar7;" (assignment_expression "puVar9[2] = uVar7" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uint8_t *)starting == (uint8_t *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined1 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xb) = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }" if (parenthesized_expression "((uint8_t *)starting == (uint8_t *)0x1)" ( (binary_expression "(uint8_t *)starting == (uint8_t *)0x1" (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(uint8_t *)0x1" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar9 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined1 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xb) = 0;\n  }" { (expression_statement "uStack_23c = 0x6000000;" (assignment_expression "uStack_23c = 0x6000000" identifier = number_literal) ;) (expression_statement "uStack_238 = 0;" (assignment_expression "uStack_238 = 0" identifier = number_literal) ;) (expression_statement "uStack_234 = 0;" (assignment_expression "uStack_234 = 0" identifier = number_literal) ;) (expression_statement "uStack_233 = 0;" (assignment_expression "uStack_233 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar9 + 2) = 0x6000000;" (assignment_expression "*(undefined4 *)((int)puVar9 + 2) = 0x6000000" (pointer_expression "*(undefined4 *)((int)puVar9 + 2)" * (cast_expression "(undefined4 *)((int)puVar9 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 2)" ( (binary_expression "(int)puVar9 + 2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar9 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar9 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar9 + 6)" * (cast_expression "(undefined4 *)((int)puVar9 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 6)" ( (binary_expression "(int)puVar9 + 6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar9 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar9 + 10)" * (cast_expression "(undefined1 *)((int)puVar9 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 10)" ( (binary_expression "(int)puVar9 + 10" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar9 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar9 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xb)" ( (binary_expression "(int)puVar9 + 0xb" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }" else (if_statement "if ((uint8_t *)starting == (uint8_t *)0x2) {\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }" if (parenthesized_expression "((uint8_t *)starting == (uint8_t *)0x2)" ( (binary_expression "(uint8_t *)starting == (uint8_t *)0x2" (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(uint8_t *)0x2" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puStack_230 = (uint8_t *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar9 = 0xa0a0200;\n    puVar9[1] = 0;\n    puVar9[2] = 0x24b;\n    starting = (int)puStack_230;\n  }" { (expression_statement "puStack_230 = (uint8_t *)0xa0a0200;" (assignment_expression "puStack_230 = (uint8_t *)0xa0a0200" identifier = (cast_expression "(uint8_t *)0xa0a0200" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_22c = 0;" (assignment_expression "uStack_22c = 0" identifier = number_literal) ;) (expression_statement "uStack_228 = 0x24b;" (assignment_expression "uStack_228 = 0x24b" identifier = number_literal) ;) (expression_statement "*puVar9 = 0xa0a0200;" (assignment_expression "*puVar9 = 0xa0a0200" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 0x24b;" (assignment_expression "puVar9[2] = 0x24b" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "starting = (int)puStack_230;" (assignment_expression "starting = (int)puStack_230" identifier = (cast_expression "(int)puStack_230" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })))) (if_statement "if (puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8))" ( (binary_expression "puVar10 == (undefined4 *)**(int **)(pcVar19 + 0x292f8)" identifier == (cast_expression "(undefined4 *)**(int **)(pcVar19 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar19 + 0x292f8)" * (pointer_expression "*(int **)(pcVar19 + 0x292f8)" * (cast_expression "(int **)(pcVar19 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x292f8)" ( (binary_expression "pcVar19 + 0x292f8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x292c4);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x292c4)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x292c4)" * (cast_expression "(code **)(pcVar19 + 0x292c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x292c4)" ( (binary_expression "pcVar19 + 0x292c4" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = resp_ctrl_ext_m_pg;" (assignment_expression "pcVar21 = resp_ctrl_ext_m_pg" identifier = identifier) ;) (expression_statement "puStack_224 = puVar10;" (assignment_expression "puStack_224 = puVar10" identifier = identifier) ;) (expression_statement "pcStack_21c = pcVar20;" (assignment_expression "pcStack_21c = pcVar20" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8);" (assignment_expression "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar19 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x291b8)" ( (binary_expression "pcVar19 + 0x291b8" identifier + number_literal) ))))))) ;) (expression_statement "psStack_264 = psVar6;" (assignment_expression "psStack_264 = psVar6" identifier = identifier) ;) (expression_statement "iStack_260 = iVar18;" (assignment_expression "iStack_260 = iVar18" identifier = identifier) ;) (expression_statement "pcStack_25c = pcVar21;" (assignment_expression "pcStack_25c = pcVar21" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);" (call_expression "(**(code **)(pcVar19 + 0x290d0))((int)&uStack_28c + 2,0,0x1e)" (parenthesized_expression "(**(code **)(pcVar19 + 0x290d0))" ( (pointer_expression "**(code **)(pcVar19 + 0x290d0)" * (pointer_expression "*(code **)(pcVar19 + 0x290d0)" * (cast_expression "(code **)(pcVar19 + 0x290d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x290d0)" ( (binary_expression "pcVar19 + 0x290d0" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_28c + 2,0,0x1e)" ( (binary_expression "(int)&uStack_28c + 2" (cast_expression "(int)&uStack_28c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_28c" & identifier)) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar18 = *(int *)(pcVar19 + 0x28f94);" (assignment_expression "iVar18 = *(int *)(pcVar19 + 0x28f94)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x28f94)" * (cast_expression "(int *)(pcVar19 + 0x28f94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x28f94)" ( (binary_expression "pcVar19 + 0x28f94" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(undefined4 *)(iVar18 + 0x76e0);" (assignment_expression "uVar16 = *(undefined4 *)(iVar18 + 0x76e0)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76e0)" * (cast_expression "(undefined4 *)(iVar18 + 0x76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76e0)" ( (binary_expression "iVar18 + 0x76e0" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(iVar18 + 0x76e4);" (assignment_expression "uVar15 = *(undefined4 *)(iVar18 + 0x76e4)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76e4)" * (cast_expression "(undefined4 *)(iVar18 + 0x76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76e4)" ( (binary_expression "iVar18 + 0x76e4" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar18 + 0x76e8);" (assignment_expression "uVar14 = *(undefined4 *)(iVar18 + 0x76e8)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76e8)" * (cast_expression "(undefined4 *)(iVar18 + 0x76e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76e8)" ( (binary_expression "iVar18 + 0x76e8" identifier + number_literal) ))))) ;) (expression_statement "iStack_2d8 = *(int *)(iVar18 + 0x76ec);" (assignment_expression "iStack_2d8 = *(int *)(iVar18 + 0x76ec)" identifier = (pointer_expression "*(int *)(iVar18 + 0x76ec)" * (cast_expression "(int *)(iVar18 + 0x76ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76ec)" ( (binary_expression "iVar18 + 0x76ec" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar18 + 0x76f0);" (assignment_expression "uVar12 = *(undefined4 *)(iVar18 + 0x76f0)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76f0)" * (cast_expression "(undefined4 *)(iVar18 + 0x76f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76f0)" ( (binary_expression "iVar18 + 0x76f0" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar18 + 0x76f4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar18 + 0x76f4)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76f4)" * (cast_expression "(undefined4 *)(iVar18 + 0x76f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76f4)" ( (binary_expression "iVar18 + 0x76f4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar18 + 0x76f8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar18 + 0x76f8)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76f8)" * (cast_expression "(undefined4 *)(iVar18 + 0x76f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76f8)" ( (binary_expression "iVar18 + 0x76f8" identifier + number_literal) ))))) ;) (expression_statement "*puVar10 = *(undefined4 *)(iVar18 + 0x76dc);" (assignment_expression "*puVar10 = *(undefined4 *)(iVar18 + 0x76dc)" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*(undefined4 *)(iVar18 + 0x76dc)" * (cast_expression "(undefined4 *)(iVar18 + 0x76dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76dc)" ( (binary_expression "iVar18 + 0x76dc" identifier + number_literal) ))))) ;) (expression_statement "puVar10[1] = uVar16;" (assignment_expression "puVar10[1] = uVar16" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar15;" (assignment_expression "puVar10[2] = uVar15" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = uVar14;" (assignment_expression "puVar10[3] = uVar14" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[4] = iStack_2d8;" (assignment_expression "puVar10[4] = iStack_2d8" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = uVar12;" (assignment_expression "puVar10[5] = uVar12" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = uVar11;" (assignment_expression "puVar10[6] = uVar11" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[7] = uVar7;" (assignment_expression "puVar10[7] = uVar7" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uint8_t *)starting == (uint8_t *)0x1) {\n    iStack_2d8 = 0;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    puVar10[4] = 0;\n    puVar10[5] = 0;\n    puVar10[6] = 0;\n    puVar10[7] = 0;\n  }\n  else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "((uint8_t *)starting == (uint8_t *)0x1)" ( (binary_expression "(uint8_t *)starting == (uint8_t *)0x1" (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(uint8_t *)0x1" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iStack_2d8 = 0;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n    puVar10[3] = 0;\n    puVar10[4] = 0;\n    puVar10[5] = 0;\n    puVar10[6] = 0;\n    puVar10[7] = 0;\n  }" { (expression_statement "iStack_2d8 = 0;" (assignment_expression "iStack_2d8 = 0" identifier = number_literal) ;) (expression_statement "puVar10[1] = 0;" (assignment_expression "puVar10[1] = 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[3] = 0;" (assignment_expression "puVar10[3] = 0" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[4] = 0;" (assignment_expression "puVar10[4] = 0" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[5] = 0;" (assignment_expression "puVar10[5] = 0" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[6] = 0;" (assignment_expression "puVar10[6] = 0" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[7] = 0;" (assignment_expression "puVar10[7] = 0" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" else (if_statement "if ((uint8_t *)starting == (uint8_t *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "((uint8_t *)starting == (uint8_t *)0x2)" ( (binary_expression "(uint8_t *)starting == (uint8_t *)0x2" (cast_expression "(uint8_t *)starting" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(uint8_t *)0x2" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar10 = uStack_28c;\n    puVar10[1] = uStack_288;\n    puVar10[2] = uStack_284;\n    puVar10[3] = uStack_280;\n    puVar10[4] = iStack_27c;\n    puVar10[5] = uStack_278;\n    puVar10[6] = uStack_274;\n    puVar10[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" { (expression_statement "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));" (assignment_expression "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier = (call_expression "CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier (argument_list "(0x4a,CONCAT12(1,uStack_28c._2_2_))" ( number_literal , (call_expression "CONCAT12(1,uStack_28c._2_2_)" identifier (argument_list "(1,uStack_28c._2_2_)" ( number_literal , (field_expression "uStack_28c._2_2_" identifier . field_identifier) ))) )))) ;) (expression_statement "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);" (assignment_expression "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c)" identifier = (call_expression "CONCAT31(uStack_28c._0_3_,0x1c)" identifier (argument_list "(uStack_28c._0_3_,0x1c)" ( (field_expression "uStack_28c._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);" (assignment_expression "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288)" (field_expression "uStack_288._2_2_" identifier . field_identifier) = (call_expression "CONCAT11(0x40,(undefined1)uStack_288)" identifier (argument_list "(0x40,(undefined1)uStack_288)" ( number_literal , (cast_expression "(undefined1)uStack_288" ( (type_descriptor "undefined1" type_identifier) ) identifier) )))) ;) (expression_statement "*puVar10 = uStack_28c;" (assignment_expression "*puVar10 = uStack_28c" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "puVar10[1] = uStack_288;" (assignment_expression "puVar10[1] = uStack_288" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uStack_284;" (assignment_expression "puVar10[2] = uStack_284" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = uStack_280;" (assignment_expression "puVar10[3] = uStack_280" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[4] = iStack_27c;" (assignment_expression "puVar10[4] = iStack_27c" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = uStack_278;" (assignment_expression "puVar10[5] = uStack_278" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[6] = uStack_274;" (assignment_expression "puVar10[6] = uStack_274" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[7] = uStack_270;" (assignment_expression "puVar10[7] = uStack_270" (subscript_expression "puVar10[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_2d8 = iStack_27c;" (assignment_expression "iStack_2d8 = iStack_27c" identifier = identifier) ;) })))) (if_statement "if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)) {\n    return 0x20;\n  }" if (parenthesized_expression "(puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8))" ( (binary_expression "puStack_26c == (undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar19 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x291b8)" ( (binary_expression "pcVar19 + 0x291b8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x20;\n  }" { (return_statement "return 0x20;" return number_literal ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x29184);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x29184)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x29184)" * (cast_expression "(code **)(pcVar19 + 0x29184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x29184)" ( (binary_expression "pcVar19 + 0x29184" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puStack_26c;" (assignment_expression "puVar10 = puStack_26c" identifier = identifier) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4);" (assignment_expression "puVar9 = (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar19 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28fc4)" ( (binary_expression "pcVar19 + 0x28fc4" identifier + number_literal) ))))))) ;) (expression_statement "iVar18 = *(int *)(pcVar19 + 0x28da0);" (assignment_expression "iVar18 = *(int *)(pcVar19 + 0x28da0)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x28da0)" * (cast_expression "(int *)(pcVar19 + 0x28da0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x28da0)" ( (binary_expression "pcVar19 + 0x28da0" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar18 + 0x76d4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar18 + 0x76d4)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76d4)" * (cast_expression "(undefined4 *)(iVar18 + 0x76d4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76d4)" ( (binary_expression "iVar18 + 0x76d4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar18 + 0x76d8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar18 + 0x76d8)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x76d8)" * (cast_expression "(undefined4 *)(iVar18 + 0x76d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76d8)" ( (binary_expression "iVar18 + 0x76d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar10 = *(undefined4 *)(iVar18 + 0x76d0);" (assignment_expression "*puVar10 = *(undefined4 *)(iVar18 + 0x76d0)" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*(undefined4 *)(iVar18 + 0x76d0)" * (cast_expression "(undefined4 *)(iVar18 + 0x76d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x76d0)" ( (binary_expression "iVar18 + 0x76d0" identifier + number_literal) ))))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[2] = uVar7;" (assignment_expression "puVar10[2] = uVar7" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar10 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar10 + 6) = 0;\n    *(undefined1 *)((int)puVar10 + 10) = 0;\n    *(undefined1 *)((int)puVar10 + 0xb) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar10 + 2) = 0x40f0000;" (assignment_expression "*(undefined4 *)((int)puVar10 + 2) = 0x40f0000" (pointer_expression "*(undefined4 *)((int)puVar10 + 2)" * (cast_expression "(undefined4 *)((int)puVar10 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 2)" ( (binary_expression "(int)puVar10 + 2" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar10 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar10 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar10 + 6)" * (cast_expression "(undefined4 *)((int)puVar10 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 6)" ( (binary_expression "(int)puVar10 + 6" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 10)" * (cast_expression "(undefined1 *)((int)puVar10 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 10)" ( (binary_expression "(int)puVar10 + 10" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar10 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar10 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0xb)" ( (binary_expression "(int)puVar10 + 0xb" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    iStack_2d8 = 0x1c0a0800;\n    *puVar10 = 0x1c0a0800;\n    puVar10[1] = 0;\n    puVar10[2] = 0;\n  }" { (expression_statement "iStack_2d8 = 0x1c0a0800;" (assignment_expression "iStack_2d8 = 0x1c0a0800" identifier = number_literal) ;) (expression_statement "*puVar10 = 0x1c0a0800;" (assignment_expression "*puVar10 = 0x1c0a0800" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10[1] = 0;" (assignment_expression "puVar10[1] = 0" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar10[2] = 0;" (assignment_expression "puVar10[2] = 0" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4))" ( (binary_expression "puVar9 == (undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar19 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar19 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar19 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar19 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28fc4)" ( (binary_expression "pcVar19 + 0x28fc4" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x28f90);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x28f90)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x28f90)" * (cast_expression "(code **)(pcVar19 + 0x28f90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28f90)" ( (binary_expression "pcVar19 + 0x28f90" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar18 = **(int **)(pcVar19 + 0x28e80);" (assignment_expression "iVar18 = **(int **)(pcVar19 + 0x28e80)" identifier = (pointer_expression "**(int **)(pcVar19 + 0x28e80)" * (pointer_expression "*(int **)(pcVar19 + 0x28e80)" * (cast_expression "(int **)(pcVar19 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28e80)" ( (binary_expression "pcVar19 + 0x28e80" identifier + number_literal) )))))) ;) (expression_statement "iVar8 = *(int *)(pcVar19 + 0x28c5c);" (assignment_expression "iVar8 = *(int *)(pcVar19 + 0x28c5c)" identifier = (pointer_expression "*(int *)(pcVar19 + 0x28c5c)" * (cast_expression "(int *)(pcVar19 + 0x28c5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x28c5c)" ( (binary_expression "pcVar19 + 0x28c5c" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar8 + 0x76c4);" (assignment_expression "uVar11 = *(undefined4 *)(iVar8 + 0x76c4)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x76c4)" * (cast_expression "(undefined4 *)(iVar8 + 0x76c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76c4)" ( (binary_expression "iVar8 + 0x76c4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar8 + 0x76c8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar8 + 0x76c8)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x76c8)" * (cast_expression "(undefined4 *)(iVar8 + 0x76c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76c8)" ( (binary_expression "iVar8 + 0x76c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = *(undefined4 *)(iVar8 + 0x76c0);" (assignment_expression "*puVar9 = *(undefined4 *)(iVar8 + 0x76c0)" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*(undefined4 *)(iVar8 + 0x76c0)" * (cast_expression "(undefined4 *)(iVar8 + 0x76c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76c0)" ( (binary_expression "iVar8 + 0x76c0" identifier + number_literal) ))))) ;) (expression_statement "puVar9[1] = uVar11;" (assignment_expression "puVar9[1] = uVar11" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9[2] = uVar7;" (assignment_expression "puVar9[2] = uVar7" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc);" (assignment_expression "*(undefined1 *)(puVar9 + 3) = *(undefined1 *)(iVar8 + 0x76cc)" (pointer_expression "*(undefined1 *)(puVar9 + 3)" * (cast_expression "(undefined1 *)(puVar9 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 3)" ( (binary_expression "puVar9 + 3" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x76cc)" * (cast_expression "(undefined1 *)(iVar8 + 0x76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76cc)" ( (binary_expression "iVar8 + 0x76cc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd);" (assignment_expression "*(undefined1 *)((int)puVar9 + 0xd) = *(undefined1 *)(iVar8 + 0x76cd)" (pointer_expression "*(undefined1 *)((int)puVar9 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar9 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xd)" ( (binary_expression "(int)puVar9 + 0xd" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x76cd)" * (cast_expression "(undefined1 *)(iVar8 + 0x76cd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76cd)" ( (binary_expression "iVar8 + 0x76cd" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce);" (assignment_expression "*(undefined1 *)((int)puVar9 + 0xe) = *(undefined1 *)(iVar8 + 0x76ce)" (pointer_expression "*(undefined1 *)((int)puVar9 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar9 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xe)" ( (binary_expression "(int)puVar9 + 0xe" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x76ce)" * (cast_expression "(undefined1 *)(iVar8 + 0x76ce)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x76ce)" ( (binary_expression "iVar8 + 0x76ce" identifier + number_literal) ))))) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined4 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xe) = 0;\n    *(undefined1 *)((int)puVar9 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar9 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar9 + 6) = 0;\n    *(undefined4 *)((int)puVar9 + 10) = 0;\n    *(undefined1 *)((int)puVar9 + 0xe) = 0;\n    *(undefined1 *)((int)puVar9 + 0xf) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar9 + 2) = 0xff000000;" (assignment_expression "*(undefined4 *)((int)puVar9 + 2) = 0xff000000" (pointer_expression "*(undefined4 *)((int)puVar9 + 2)" * (cast_expression "(undefined4 *)((int)puVar9 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 2)" ( (binary_expression "(int)puVar9 + 2" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar9 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar9 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar9 + 6)" * (cast_expression "(undefined4 *)((int)puVar9 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 6)" ( (binary_expression "(int)puVar9 + 6" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar9 + 10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar9 + 10) = 0" (pointer_expression "*(undefined4 *)((int)puVar9 + 10)" * (cast_expression "(undefined4 *)((int)puVar9 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 10)" ( (binary_expression "(int)puVar9 + 10" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar9 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar9 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xe)" ( (binary_expression "(int)puVar9 + 0xe" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar9 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar9 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar9 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar9 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xf)" ( (binary_expression "(int)puVar9 + 0xf" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    *puVar9 = 0xe0000;\n    puVar9[1] = 0;\n    puVar9[2] = 0;\n    puVar9[3] = 0;\n  }" { (expression_statement "*puVar9 = 0xe0000;" (assignment_expression "*puVar9 = 0xe0000" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9[1] = 0;" (assignment_expression "puVar9[1] = 0" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[2] = 0;" (assignment_expression "puVar9[2] = 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0;" (assignment_expression "puVar9[3] = 0" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (iVar18 == **(int **)(pcVar19 + 0x28e80)) {\n    return 0xf;\n  }" if (parenthesized_expression "(iVar18 == **(int **)(pcVar19 + 0x28e80))" ( (binary_expression "iVar18 == **(int **)(pcVar19 + 0x28e80)" identifier == (pointer_expression "**(int **)(pcVar19 + 0x28e80)" * (pointer_expression "*(int **)(pcVar19 + 0x28e80)" * (cast_expression "(int **)(pcVar19 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28e80)" ( (binary_expression "pcVar19 + 0x28e80" identifier + number_literal) )))))) )) (compound_statement "{\n    return 0xf;\n  }" { (return_statement "return 0xf;" return number_literal ;) })) (expression_statement "pcVar19 = *(code **)(pcVar19 + 0x28e4c);" (assignment_expression "pcVar19 = *(code **)(pcVar19 + 0x28e4c)" identifier = (pointer_expression "*(code **)(pcVar19 + 0x28e4c)" * (cast_expression "(code **)(pcVar19 + 0x28e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + 0x28e4c)" ( (binary_expression "pcVar19 + 0x28e4c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar19)();" (call_expression "(*pcVar19)()" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return *(int *)(pcVar19 + 0x28ae8) + 0x25b0;" return (binary_expression "*(int *)(pcVar19 + 0x28ae8) + 0x25b0" (pointer_expression "*(int *)(pcVar19 + 0x28ae8)" * (cast_expression "(int *)(pcVar19 + 0x28ae8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 0x28ae8)" ( (binary_expression "pcVar19 + 0x28ae8" identifier + number_literal) )))) + number_literal) ;) })))
(translation_unit "int sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}\n\n" (function_definition "int sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" primitive_type (function_declarator "sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" identifier (parameter_list "(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "byte param_6" type_identifier identifier) , (parameter_declaration "byte *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iStack_2d8;" primitive_type identifier ;) (declaration "undefined4 uStack_28c;" type_identifier identifier ;) (declaration "undefined4 uStack_288;" type_identifier identifier ;) (declaration "undefined4 uStack_284;" type_identifier identifier ;) (declaration "undefined4 uStack_280;" type_identifier identifier ;) (declaration "int iStack_27c;" primitive_type identifier ;) (declaration "undefined4 uStack_278;" type_identifier identifier ;) (declaration "undefined4 uStack_274;" type_identifier identifier ;) (declaration "undefined4 uStack_270;" type_identifier identifier ;) (declaration "undefined4 *puStack_26c;" type_identifier (pointer_declarator "*puStack_26c" * identifier) ;) (declaration "int iStack_264;" primitive_type identifier ;) (declaration "int iStack_260;" primitive_type identifier ;) (declaration "code *pcStack_25c;" type_identifier (pointer_declarator "*pcStack_25c" * identifier) ;) (declaration "code *pcStack_248;" type_identifier (pointer_declarator "*pcStack_248" * identifier) ;) (declaration "undefined4 uStack_23c;" type_identifier identifier ;) (declaration "undefined4 uStack_238;" type_identifier identifier ;) (declaration "undefined1 uStack_234;" type_identifier identifier ;) (declaration "undefined1 uStack_233;" type_identifier identifier ;) (declaration "byte *pbStack_230;" type_identifier (pointer_declarator "*pbStack_230" * identifier) ;) (declaration "undefined4 uStack_22c;" type_identifier identifier ;) (declaration "undefined4 uStack_228;" type_identifier identifier ;) (declaration "undefined4 *puStack_224;" type_identifier (pointer_declarator "*puStack_224" * identifier) ;) (declaration "code *pcStack_21c;" type_identifier (pointer_declarator "*pcStack_21c" * identifier) ;) (declaration "code *pcStack_208;" type_identifier (pointer_declarator "*pcStack_208" * identifier) ;) (declaration "undefined4 uStack_1fc;" type_identifier identifier ;) (declaration "undefined4 uStack_1f8;" type_identifier identifier ;) (declaration "undefined4 uStack_1f4;" type_identifier identifier ;) (declaration "undefined4 uStack_1f0;" type_identifier identifier ;) (declaration "undefined4 *puStack_1ec;" type_identifier (pointer_declarator "*puStack_1ec" * identifier) ;) (declaration "undefined4 uStack_1e4;" type_identifier identifier ;) (declaration "byte *pbStack_1d0;" type_identifier (pointer_declarator "*pbStack_1d0" * identifier) ;) (declaration "uint uStack_1cc;" type_identifier identifier ;) (declaration "uint uStack_1c8;" type_identifier identifier ;) (declaration "uint *puStack_1c4;" type_identifier (pointer_declarator "*puStack_1c4" * identifier) ;) (declaration "code *pcStack_1c0;" type_identifier (pointer_declarator "*pcStack_1c0" * identifier) ;) (declaration "uint uStack_1b4;" type_identifier identifier ;) (declaration "byte abStack_1b0 [76];" type_identifier (array_declarator "abStack_1b0 [76]" identifier [ number_literal ]) ;) (declaration "undefined4 *puStack_164;" type_identifier (pointer_declarator "*puStack_164" * identifier) ;) (declaration "int iStack_160;" primitive_type identifier ;) (declaration "int iStack_15c;" primitive_type identifier ;) (declaration "undefined4 *puStack_158;" type_identifier (pointer_declarator "*puStack_158" * identifier) ;) (declaration "byte *pbStack_154;" type_identifier (pointer_declarator "*pbStack_154" * identifier) ;) (declaration "byte *pbStack_150;" type_identifier (pointer_declarator "*pbStack_150" * identifier) ;) (declaration "byte *pbStack_14c;" type_identifier (pointer_declarator "*pbStack_14c" * identifier) ;) (declaration "byte *pbStack_148;" type_identifier (pointer_declarator "*pbStack_148" * identifier) ;) (declaration "code *pcStack_144;" type_identifier (pointer_declarator "*pcStack_144" * identifier) ;) (declaration "byte *pbStack_130;" type_identifier (pointer_declarator "*pbStack_130" * identifier) ;) (declaration "uint uStack_12c;" type_identifier identifier ;) (declaration "undefined1 *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "int *piStack_124;" primitive_type (pointer_declarator "*piStack_124" * identifier) ;) (declaration "undefined *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "byte *pbStack_114;" type_identifier (pointer_declarator "*pbStack_114" * identifier) ;) (declaration "byte abStack_110 [2];" type_identifier (array_declarator "abStack_110 [2]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_10e [4];" type_identifier (array_declarator "auStack_10e [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_10a;" type_identifier identifier ;) (declaration "undefined1 uStack_109;" type_identifier identifier ;) (declaration "undefined2 uStack_108;" type_identifier identifier ;) (declaration "undefined1 uStack_106;" type_identifier identifier ;) (declaration "undefined1 uStack_105;" type_identifier identifier ;) (declaration "byte abStack_104 [64];" type_identifier (array_declarator "abStack_104 [64]" identifier [ number_literal ]) ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "byte *pbStack_b4;" type_identifier (pointer_declarator "*pbStack_b4" * identifier) ;) (declaration "byte *pbStack_b0;" type_identifier (pointer_declarator "*pbStack_b0" * identifier) ;) (declaration "byte *pbStack_ac;" type_identifier (pointer_declarator "*pbStack_ac" * identifier) ;) (declaration "byte *pbStack_a8;" type_identifier (pointer_declarator "*pbStack_a8" * identifier) ;) (declaration "code *pcStack_a4;" type_identifier (pointer_declarator "*pcStack_a4" * identifier) ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined4 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "byte *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "byte *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "byte local_70 [2];" type_identifier (array_declarator "local_70 [2]" identifier [ number_literal ]) ;) (declaration "undefined2 local_6e;" type_identifier identifier ;) (declaration "undefined1 local_6c;" type_identifier identifier ;) (declaration "undefined1 local_6b;" type_identifier identifier ;) (declaration "undefined1 local_6a;" type_identifier identifier ;) (declaration "undefined1 local_69;" type_identifier identifier ;) (declaration "undefined1 local_68;" type_identifier identifier ;) (declaration "undefined1 local_67;" type_identifier identifier ;) (declaration "byte abStack_66 [2];" type_identifier (array_declarator "abStack_66 [2]" identifier [ number_literal ]) ;) (declaration "byte abStack_64 [64];" type_identifier (array_declarator "abStack_64 [64]" identifier [ number_literal ]) ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "local_24 = *(byte **)PTR___stack_chk_guard_00057a50;" (assignment_expression "local_24 = *(byte **)PTR___stack_chk_guard_00057a50" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" * (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_70[0] = 0x46;" (assignment_expression "local_70[0] = 0x46" (subscript_expression "local_70[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_70[1] = 0;" (assignment_expression "local_70[1] = 0" (subscript_expression "local_70[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6e = 0;" (assignment_expression "local_6e = 0" identifier = number_literal) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "local_6b = 0;" (assignment_expression "local_6b = 0" identifier = number_literal) ;) (expression_statement "local_6a = 0;" (assignment_expression "local_6a = 0" identifier = number_literal) ;) (expression_statement "local_69 = 0;" (assignment_expression "local_69 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_67 = 0;" (assignment_expression "local_67 = 0" identifier = number_literal) ;) (if_statement "if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" if (parenthesized_expression "(param_2 < (byte *)0x4)" ( (binary_expression "param_2 < (byte *)0x4" identifier < (cast_expression "(byte *)0x4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }" { (expression_statement "local_70[1] = (byte)param_2;" (assignment_expression "local_70[1] = (byte)param_2" (subscript_expression "local_70[1]" identifier [ number_literal ]) = (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" identifier = identifier) ;) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" if (parenthesized_expression "(param_3 < (byte *)0x10000)" ( (binary_expression "param_3 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }" { (expression_statement "local_6e = SUB42(param_3,0);" (assignment_expression "local_6e = SUB42(param_3,0)" identifier = (call_expression "SUB42(param_3,0)" identifier (argument_list "(param_3,0)" ( identifier , number_literal )))) ;) (if_statement "if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" if (parenthesized_expression "(param_5 < (byte *)0x10000)" ( (binary_expression "param_5 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }" { (expression_statement "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);" (assignment_expression "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_)" identifier = (cast_expression "(byte *)CONCAT22((short)param_5,local_74._2_2_)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22((short)param_5,local_74._2_2_)" identifier (argument_list "((short)param_5,local_74._2_2_)" ( (cast_expression "(short)param_5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "local_74._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "local_69 = (undefined1)((uint)param_5 >> 8);" (assignment_expression "local_69 = (undefined1)((uint)param_5 >> 8)" identifier = (call_expression "(undefined1)((uint)param_5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_5 >> 8)" ( (binary_expression "(uint)param_5 >> 8" (cast_expression "(uint)param_5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_68 = SUB41(param_5,0);" (assignment_expression "local_68 = SUB41(param_5,0)" identifier = (call_expression "SUB41(param_5,0)" identifier (argument_list "(param_5,0)" ( identifier , number_literal )))) ;) (if_statement "if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" if (parenthesized_expression "(param_7 != (byte *)0x0)" ( (binary_expression "param_7 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x17c0" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (expression_statement "pbVar4 = local_70;" (assignment_expression "pbVar4 = local_70" identifier = identifier) ;) (expression_statement "unaff_s6 = abStack_66;" (assignment_expression "unaff_s6 = abStack_66" identifier = identifier) ;) (expression_statement "unaff_s2 = PTR_LAB_0005783c + 0x511c;" (assignment_expression "unaff_s2 = PTR_LAB_0005783c + 0x511c" identifier = (binary_expression "PTR_LAB_0005783c + 0x511c" identifier + number_literal)) ;) (do_statement "do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);" do (compound_statement "{\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(unaff_s2);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != unaff_s6)" ( (binary_expression "pbVar4 != unaff_s6" identifier != identifier) )) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x29c4)" ( (binary_expression "PTR_s__00057840 + 0x29c4" identifier + number_literal) ))) ;) })) (expression_statement "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);" (assignment_expression "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0)" identifier = (call_expression "FUN_0002d790(PTR_s__00057840 + 0x23e0)" identifier (argument_list "(PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) )))) ;) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" if (parenthesized_expression "(unaff_s0 == 0)" ( (binary_expression "unaff_s0 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = -1;\n        }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" else (compound_statement "{\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" { (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00057860" * (cast_expression "(code *)PTR_set_scsi_pt_cdb_00057860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,local_70,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s2 = abStack_64;" (assignment_expression "unaff_s2 = abStack_64" identifier = identifier) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000578f4" * (cast_expression "(code *)PTR_set_scsi_pt_sense_000578f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,unaff_s2,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)" ( (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00057a84" * (cast_expression "(code *)PTR_set_scsi_pt_data_in_00057a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,param_4,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);" (assignment_expression "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" identifier = (cast_expression "(byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00057984)" ( (pointer_expression "*(code *)PTR_do_scsi_pt_00057984" * (cast_expression "(code *)PTR_do_scsi_pt_00057984" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0,param_1,0x3c,param_7)" ( identifier , identifier , number_literal , identifier ))))) ;) (expression_statement "local_84 = &local_78;" (assignment_expression "local_84 = &local_78" identifier = (pointer_expression "&local_78" & identifier)) ;) (expression_statement "local_88 = param_7;" (assignment_expression "local_88 = param_7" identifier = identifier) ;) (expression_statement "local_8c = (undefined4 *)(uint)param_6;" (assignment_expression "local_8c = (undefined4 *)(uint)param_6" identifier = (cast_expression "(undefined4 *)(uint)param_6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)param_6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "param_2 = PTR_s__00057840 + 0x23e0;" (assignment_expression "param_2 = PTR_s__00057840 + 0x23e0" identifier = (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal)) ;) (expression_statement "local_90 = unaff_s2;" (assignment_expression "local_90 = unaff_s2" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" identifier = (cast_expression "(byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)" ( (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000578d0" * (cast_expression "(code *)PTR_sg_cmds_process_resp_000578d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pbVar3 == (byte *)0xffffffff)" ( (binary_expression "pbVar3 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }" { (expression_statement "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);" (assignment_expression "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" identifier = (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)" ( (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00057aa0" * (cast_expression "(code *)PTR_get_scsi_pt_os_err_00057aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);" (assignment_expression "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5)" identifier = (call_expression "(*(code *)PTR_sg_convert_errno_00057928)(uVar5)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00057928)" ( (pointer_expression "*(code *)PTR_sg_convert_errno_00057928" * (cast_expression "(code *)PTR_sg_convert_errno_00057928" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (if_statement "if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pbVar3 == (byte *)0xfffffffe)" ( (binary_expression "pbVar3 == (byte *)0xfffffffe" identifier == (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" { (if_statement "if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" if (parenthesized_expression "(local_78 - 5U < 0x11)" ( (binary_expression "local_78 - 5U < 0x11" (binary_expression "local_78 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" { (expression_statement "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();" (assignment_expression "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" ( (binary_expression "&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" * (cast_expression "(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" ( (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8" (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4" identifier + (binary_expression "(local_78 - 5U) * 4" (parenthesized_expression "(local_78 - 5U)" ( (binary_expression "local_78 - 5U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (if_statement "if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" if (parenthesized_expression "((int)param_7 < 3)" ( (binary_expression "(int)param_7 < 3" (cast_expression "(int)param_7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            iVar16 = 0;\n          }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" if (parenthesized_expression "(3 < (int)pbVar3)" ( (binary_expression "3 < (int)pbVar3" number_literal < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" { (expression_statement "local_74 = *(byte **)param_4;" (assignment_expression "local_74 = *(byte **)param_4" identifier = (pointer_expression "*(byte **)param_4" * (cast_expression "(byte **)param_4" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "param_2 = local_74;" (assignment_expression "param_2 = local_74" identifier = identifier) ;) (if_statement "if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }" if (parenthesized_expression "((int)local_74 < 0)" ( (binary_expression "(int)local_74 < 0" (cast_expression "(int)local_74" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                param_2 = (byte *)0x0;\n              }" { (expression_statement "param_2 = (byte *)0x0;" (assignment_expression "param_2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }" if (parenthesized_expression "((int)pbVar3 <= (int)param_2)" ( (binary_expression "(int)pbVar3 <= (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                param_2 = pbVar3;\n              }" { (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" ( (binary_expression "PTR_s__00057840 + 0x23f4" identifier + number_literal) , (binary_expression "PTR_s__00057840 + 0x23e0" identifier + number_literal) ))) ;) (if_statement "if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" if (parenthesized_expression "(param_7 == (byte *)0x3)" ( (binary_expression "param_7 == (byte *)0x3" identifier == (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }" { (if_statement "if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" if (parenthesized_expression "((int)param_2 < 0x101)" ( (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }" { (expression_statement "puVar12 = PTR_s__00057840 + 0x17b4;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x17b4" identifier = (binary_expression "PTR_s__00057840 + 0x17b4" identifier + number_literal)) ;) }) (else_clause "else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" else (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" { (expression_statement "puVar12 = PTR_s__00057840 + 0x1b00;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x1b00" identifier = (binary_expression "PTR_s__00057840 + 0x1b00" identifier + number_literal)) ;) }))) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0005783c + 0x55c4,puVar12)" ( (binary_expression "PTR_LAB_0005783c + 0x55c4" identifier + number_literal) , identifier ))) ;) (expression_statement "param_3 = (byte *)0xffffffff;" (assignment_expression "param_3 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar3 = (byte *)0x100;" (assignment_expression "pbVar3 = (byte *)0x100" identifier = (cast_expression "(byte *)0x100" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }" if (parenthesized_expression "((int)param_2 < 0x101)" ( (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  pbVar3 = param_2;\n                }" { (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) }) (else_clause "else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" else (compound_statement "{\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2e44)" ( (binary_expression "PTR_s__00057840 + 0x2e44" identifier + number_literal) ))) ;) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" ( (pointer_expression "*(code *)PTR_hex2stderr_0005789c" * (cast_expression "(code *)PTR_hex2stderr_0005789c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) })) }))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)" ( (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005796c" * (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005796c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "pbVar3 = param_5;" (assignment_expression "pbVar3 = param_5" identifier = identifier) ;) }))) }) (else_clause "else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" else (compound_statement "{\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" { (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23c8)" ( (binary_expression "PTR_s__00057840 + 0x23c8" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" else (compound_statement "{\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" { (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x23a4)" ( (binary_expression "PTR_s__00057840 + 0x23a4" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" else (compound_statement "{\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" { (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" ( (pointer_expression "*(code *)PTR_pr2ws_000578ec" * (cast_expression "(code *)PTR_pr2ws_000578ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__00057840 + 0x2390)" ( (binary_expression "PTR_s__00057840 + 0x2390" identifier + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" identifier = identifier) ;) }))) (if_statement "if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }" if (parenthesized_expression "(local_24 == *(byte **)PTR___stack_chk_guard_00057a50)" ( (binary_expression "local_24 == *(byte **)PTR___stack_chk_guard_00057a50" identifier == (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" * (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar16;\n  }" { (return_statement "return iVar16;" return identifier ;) })) (expression_statement "pcVar18 = sg_ll_get_performance;" (assignment_expression "pcVar18 = sg_ll_get_performance" identifier = identifier) ;) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" identifier = identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_00057a1c;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00057a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00057a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00057a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00057a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00057a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00057a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = local_8c;" (assignment_expression "puVar8 = local_8c" identifier = identifier) ;) (expression_statement "pbVar4 = local_90;" (assignment_expression "pbVar4 = local_90" identifier = identifier) ;) (expression_statement "puStack_120 = puVar12 + 0x31938;" (assignment_expression "puStack_120 = puVar12 + 0x31938" identifier = (binary_expression "puVar12 + 0x31938" identifier + number_literal)) ;) (expression_statement "pcStack_a4 = pcVar18;" (assignment_expression "pcStack_a4 = pcVar18" identifier = identifier) ;) (expression_statement "pbStack_a8 = unaff_s5;" (assignment_expression "pbStack_a8 = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_ac = unaff_s4;" (assignment_expression "pbStack_ac = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_b0 = param_7;" (assignment_expression "pbStack_b0 = param_7" identifier = identifier) ;) (expression_statement "pbStack_b4 = unaff_s2;" (assignment_expression "pbStack_b4 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_b8 = iVar16;" (assignment_expression "iStack_b8 = iVar16" identifier = identifier) ;) (expression_statement "iStack_bc = unaff_s0;" (assignment_expression "iStack_bc = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_c4 = **(int **)(puVar12 + 0x29b78);" (assignment_expression "iStack_c4 = **(int **)(puVar12 + 0x29b78)" identifier = (pointer_expression "**(int **)(puVar12 + 0x29b78)" * (pointer_expression "*(int **)(puVar12 + 0x29b78)" * (cast_expression "(int **)(puVar12 + 0x29b78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29b78)" ( (binary_expression "puVar12 + 0x29b78" identifier + number_literal) )))))) ;) (expression_statement "abStack_110[0] = 0xac;" (assignment_expression "abStack_110[0] = 0xac" (subscript_expression "abStack_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_110[1] = 0;" (assignment_expression "abStack_110[1] = 0" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[0] = 0;" (assignment_expression "auStack_10e[0] = 0" (subscript_expression "auStack_10e[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[1] = 0;" (assignment_expression "auStack_10e[1] = 0" (subscript_expression "auStack_10e[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[2] = 0;" (assignment_expression "auStack_10e[2] = 0" (subscript_expression "auStack_10e[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "auStack_10e[3] = 0;" (assignment_expression "auStack_10e[3] = 0" (subscript_expression "auStack_10e[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_10a = 0;" (assignment_expression "uStack_10a = 0" identifier = number_literal) ;) (expression_statement "uStack_109 = 0;" (assignment_expression "uStack_109 = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uStack_106 = 0;" (assignment_expression "uStack_106 = 0" identifier = number_literal) ;) (expression_statement "uStack_105 = 0;" (assignment_expression "uStack_105 = 0" identifier = number_literal) ;) (if_statement "if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" if (parenthesized_expression "(param_2 < (byte *)0x20)" ( (binary_expression "param_2 < (byte *)0x20" identifier < (cast_expression "(byte *)0x20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }" { (expression_statement "abStack_110[1] = (char)param_2;" (assignment_expression "abStack_110[1] = (char)param_2" (subscript_expression "abStack_110[1]" identifier [ number_literal ]) = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar1 = abStack_110 + 2;" (assignment_expression "pbVar1 = abStack_110 + 2" identifier = (binary_expression "abStack_110 + 2" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" identifier = (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "-1 << (4 - uVar2) * 8" number_literal << (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal))) | (binary_expression "(uint)param_3 >> uVar2 * 8" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> (binary_expression "uVar2 * 8" identifier * number_literal)))) ;) (expression_statement "pbVar1 = abStack_110 + 5;" (assignment_expression "pbVar1 = abStack_110 + 5" identifier = (binary_expression "abStack_110 + 5" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" identifier = (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) = (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" * (cast_expression "(uint *)(pbVar1 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + -uVar2)" ( (binary_expression "pbVar1 + -uVar2" identifier + (unary_expression "-uVar2" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" number_literal >> (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "(int)param_3 << (3 - uVar2) * 8" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" ( (binary_expression "3 - uVar2" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" identifier = identifier) ;) (expression_statement "pbStack_114 = param_3;" (assignment_expression "pbStack_114 = param_3" identifier = identifier) ;) (if_statement "if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" if (parenthesized_expression "(pbVar3 < (byte *)0x10000)" ( (binary_expression "pbVar3 < (byte *)0x10000" identifier < (cast_expression "(byte *)0x10000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }" { (expression_statement "uStack_108 = SUB42(pbVar3,0);" (assignment_expression "uStack_108 = SUB42(pbVar3,0)" identifier = (call_expression "SUB42(pbVar3,0)" identifier (argument_list "(pbVar3,0)" ( identifier , number_literal )))) ;) (if_statement "if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" if (parenthesized_expression "(pbVar4 < (byte *)0x100)" ( (binary_expression "pbVar4 < (byte *)0x100" identifier < (cast_expression "(byte *)0x100" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }" { (expression_statement "uStack_106 = SUB41(pbVar4,0);" (assignment_expression "uStack_106 = SUB41(pbVar4,0)" identifier = (call_expression "SUB41(pbVar4,0)" identifier (argument_list "(pbVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);" (call_expression "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x17c0" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar12 + 0x29968) + 0x244c" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar4 = abStack_110;" (assignment_expression "pbVar4 = abStack_110" identifier = identifier) ;) (expression_statement "unaff_s5 = abStack_104;" (assignment_expression "unaff_s5 = abStack_104" identifier = identifier) ;) (expression_statement "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);" (assignment_expression "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" identifier = (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd4) + 0x511c" (pointer_expression "*(int *)(puStack_120 + -0x7fd4)" * (cast_expression "(int *)(puStack_120 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd4)" ( (binary_expression "puStack_120 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (do_statement "do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);" do (compound_statement "{\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(unaff_s4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != unaff_s5)" ( (binary_expression "pbVar4 != unaff_s5" identifier != identifier) )) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier = (call_expression "FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" if (parenthesized_expression "(unaff_s0 == 0)" ( (binary_expression "unaff_s0 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = -1;\n        }" { (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" else (compound_statement "{\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" { (expression_statement "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);" (call_expression "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7fb0))" ( (pointer_expression "**(code **)(puStack_120 + -0x7fb0)" * (pointer_expression "*(code **)(puStack_120 + -0x7fb0)" * (cast_expression "(code **)(puStack_120 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7fb0)" ( (binary_expression "puStack_120 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,abStack_110,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s4 = abStack_104;" (assignment_expression "unaff_s4 = abStack_104" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);" (call_expression "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f1c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f1c)" * (pointer_expression "*(code **)(puStack_120 + -0x7f1c)" * (cast_expression "(code **)(puStack_120 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f1c)" ( (binary_expression "puStack_120 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s4,0x40)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);" (call_expression "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7d8c)" * (cast_expression "(code **)(puStack_120 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d8c)" ( (binary_expression "puStack_120 + -0x7d8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,puVar8,local_88)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);" (assignment_expression "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" identifier = (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7e8c))" ( (pointer_expression "**(code **)(puStack_120 + -0x7e8c)" * (pointer_expression "*(code **)(puStack_120 + -0x7e8c)" * (cast_expression "(code **)(puStack_120 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7e8c)" ( (binary_expression "puStack_120 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,pbVar9,0x3c,&_gp_1)" ( identifier , identifier , number_literal , (pointer_expression "&_gp_1" & identifier) ))))) ;) (expression_statement "piStack_124 = &iStack_118;" (assignment_expression "piStack_124 = &iStack_118" identifier = (pointer_expression "&iStack_118" & identifier)) ;) (expression_statement "puStack_128 = &_gp_1;" (assignment_expression "puStack_128 = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "uStack_12c = (uint)local_84 & 0xff;" (assignment_expression "uStack_12c = (uint)local_84 & 0xff" identifier = (binary_expression "(uint)local_84 & 0xff" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" identifier = (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar3 = local_88;" (assignment_expression "pbVar3 = local_88" identifier = identifier) ;) (expression_statement "pbStack_130 = unaff_s4;" (assignment_expression "pbStack_130 = unaff_s4" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" identifier = (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f40))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f40)" * (pointer_expression "*(code **)(puStack_120 + -0x7f40)" * (cast_expression "(code **)(puStack_120 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f40)" ( (binary_expression "puStack_120 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))))) ;) (if_statement "if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" if (parenthesized_expression "(pbVar4 == (byte *)0xffffffff)" ( (binary_expression "pbVar4 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }" { (expression_statement "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);" (assignment_expression "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7d70))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d70))" ( (pointer_expression "**(code **)(puStack_120 + -0x7d70)" * (pointer_expression "*(code **)(puStack_120 + -0x7d70)" * (cast_expression "(code **)(puStack_120 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7d70)" ( (binary_expression "puStack_120 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier )))) ;) (expression_statement "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);" (assignment_expression "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5)" identifier = (call_expression "(**(code **)(puStack_120 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ee8))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ee8)" * (pointer_expression "*(code **)(puStack_120 + -0x7ee8)" * (cast_expression "(code **)(puStack_120 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ee8)" ( (binary_expression "puStack_120 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" else (if_statement "if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" if (parenthesized_expression "(pbVar4 == (byte *)0xfffffffe)" ( (binary_expression "pbVar4 == (byte *)0xfffffffe" identifier == (cast_expression "(byte *)0xfffffffe" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" { (if_statement "if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" if (parenthesized_expression "(iStack_118 - 5U < 0x11)" ( (binary_expression "iStack_118 - 5U < 0x11" (binary_expression "iStack_118 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" { (expression_statement "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();" (assignment_expression "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" identifier = (call_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" (parenthesized_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))" ( (pointer_expression "*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" * (cast_expression "(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" ( (binary_expression "puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" * (cast_expression "(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4" (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "(iStack_118 - 5U) * 4" (parenthesized_expression "(iStack_118 - 5U)" ( (binary_expression "iStack_118 - 5U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" else (compound_statement "{\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" { (expression_statement "param_2 = *(byte **)(puStack_120 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(puStack_120 + -0x7fd0)" identifier = (pointer_expression "*(byte **)(puStack_120 + -0x7fd0)" * (cast_expression "(byte **)(puStack_120 + -0x7fd0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" if (parenthesized_expression "((int)pbVar4 < 4)" ( (binary_expression "(int)pbVar4 < 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar16 = 0;\n            }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" else (compound_statement "{\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" { (expression_statement "pbStack_114 = (byte *)*puVar8;" (assignment_expression "pbStack_114 = (byte *)*puVar8" identifier = (cast_expression "(byte *)*puVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "pbVar9 = pbStack_114;" (assignment_expression "pbVar9 = pbStack_114" identifier = identifier) ;) (if_statement "if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }" if (parenthesized_expression "((int)pbStack_114 < 0)" ( (binary_expression "(int)pbStack_114 < 0" (cast_expression "(int)pbStack_114" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                pbVar9 = (byte *)0x0;\n              }" { (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }" if (parenthesized_expression "((int)pbVar4 <= (int)pbVar9)" ( (binary_expression "(int)pbVar4 <= (int)pbVar9" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar9 = pbVar4;\n              }" { (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" identifier = identifier) ;) })) (expression_statement "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);" (call_expression "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x1b3c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "param_2 + 0x244c" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f24)" * (pointer_expression "*(code **)(puStack_120 + -0x7f24)" * (cast_expression "(code **)(puStack_120 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f24)" ( (binary_expression "puStack_120 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" ( (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x2e44" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" * (cast_expression "(int *)(puStack_120 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_120 + -0x7fd0)" ( (binary_expression "puStack_120 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = pbVar9;" (assignment_expression "param_2 = pbVar9" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_120 + -0x7f74))(puVar8);" (call_expression "(**(code **)(puStack_120 + -0x7f74))(puVar8)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f74))" ( (pointer_expression "**(code **)(puStack_120 + -0x7f74)" * (pointer_expression "*(code **)(puStack_120 + -0x7f74)" * (cast_expression "(code **)(puStack_120 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7f74)" ( (binary_expression "puStack_120 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(puVar8)" ( identifier ))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) }))))) (expression_statement "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0);" (call_expression "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ea4))" ( (pointer_expression "**(code **)(puStack_120 + -0x7ea4)" * (pointer_expression "*(code **)(puStack_120 + -0x7ea4)" * (cast_expression "(code **)(puStack_120 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7ea4)" ( (binary_expression "puStack_120 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(unaff_s0)" ( identifier ))) ;) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" else (compound_statement "{\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" { (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x243c)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x243c" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = pbVar4;" (assignment_expression "param_2 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" else (compound_statement "{\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" { (expression_statement "pbVar4 = pbVar3;" (assignment_expression "pbVar4 = pbVar3" identifier = identifier) ;) (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2424)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2424" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" identifier = identifier) ;) }))) }) (else_clause "else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" else (compound_statement "{\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" { (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" ( (pointer_expression "**(code **)(puVar12 + 0x29a14)" * (pointer_expression "*(code **)(puVar12 + 0x29a14)" * (cast_expression "(code **)(puVar12 + 0x29a14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x29a14)" ( (binary_expression "puVar12 + 0x29a14" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2408)" ( (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2408" (pointer_expression "*(int *)(puVar12 + 0x29968)" * (cast_expression "(int *)(puVar12 + 0x29968)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x29968)" ( (binary_expression "puVar12 + 0x29968" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) }))) (if_statement "if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }" if (parenthesized_expression "(iStack_c4 == **(int **)(puStack_120 + -0x7dc0))" ( (binary_expression "iStack_c4 == **(int **)(puStack_120 + -0x7dc0)" identifier == (pointer_expression "**(int **)(puStack_120 + -0x7dc0)" * (pointer_expression "*(int **)(puStack_120 + -0x7dc0)" * (cast_expression "(int **)(puStack_120 + -0x7dc0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7dc0)" ( (binary_expression "puStack_120 + -0x7dc0" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar16;\n  }" { (return_statement "return iVar16;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(puStack_120 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(puStack_120 + -0x7df4)" identifier = (pointer_expression "*(code **)(puStack_120 + -0x7df4)" * (cast_expression "(code **)(puStack_120 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_120 + -0x7df4)" ( (binary_expression "puStack_120 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = sg_ll_set_streaming;" (assignment_expression "pcVar19 = sg_ll_set_streaming" identifier = identifier) ;) (expression_statement "iVar17 = iStack_c4;" (assignment_expression "iVar17 = iStack_c4" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = uStack_12c;" (assignment_expression "uVar2 = uStack_12c" identifier = identifier) ;) (expression_statement "pcStack_1c0 = pcVar18 + 0x314e8;" (assignment_expression "pcStack_1c0 = pcVar18 + 0x314e8" identifier = (binary_expression "pcVar18 + 0x314e8" identifier + number_literal)) ;) (expression_statement "puStack_158 = puVar8;" (assignment_expression "puStack_158 = puVar8" identifier = identifier) ;) (expression_statement "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);" (assignment_expression "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29728)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29728)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29728)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29728)" ( (binary_expression "pcVar18 + 0x29728" identifier + number_literal) ))))))) ;) (expression_statement "abStack_1b0[0] = 0xb6;" (assignment_expression "abStack_1b0[0] = 0xb6" (subscript_expression "abStack_1b0[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[1] = 0;" (assignment_expression "abStack_1b0[1] = 0" (subscript_expression "abStack_1b0[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[2] = 0;" (assignment_expression "abStack_1b0[2] = 0" (subscript_expression "abStack_1b0[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[3] = 0;" (assignment_expression "abStack_1b0[3] = 0" (subscript_expression "abStack_1b0[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[4] = 0;" (assignment_expression "abStack_1b0[4] = 0" (subscript_expression "abStack_1b0[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[5] = 0;" (assignment_expression "abStack_1b0[5] = 0" (subscript_expression "abStack_1b0[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[6] = 0;" (assignment_expression "abStack_1b0[6] = 0" (subscript_expression "abStack_1b0[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[7] = 0;" (assignment_expression "abStack_1b0[7] = 0" (subscript_expression "abStack_1b0[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[0xb] = 0;" (assignment_expression "abStack_1b0[0xb] = 0" (subscript_expression "abStack_1b0[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "abStack_1b0[8] = (byte)param_2;" (assignment_expression "abStack_1b0[8] = (byte)param_2" (subscript_expression "abStack_1b0[8]" identifier [ number_literal ]) = (cast_expression "(byte)param_2" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);" (assignment_expression "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_)" identifier = (call_expression "CONCAT22((short)pbVar3,uStack_1b4._2_2_)" identifier (argument_list "((short)pbVar3,uStack_1b4._2_2_)" ( (cast_expression "(short)pbVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (field_expression "uStack_1b4._2_2_" identifier . field_identifier) )))) ;) (expression_statement "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);" (assignment_expression "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8)" (subscript_expression "abStack_1b0[9]" identifier [ number_literal ]) = (call_expression "(byte)((uint)pbVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)pbVar3 >> 8)" ( (binary_expression "(uint)pbVar3 >> 8" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "abStack_1b0[10] = (byte)pbVar3;" (assignment_expression "abStack_1b0[10] = (byte)pbVar3" (subscript_expression "abStack_1b0[10]" identifier [ number_literal ]) = (cast_expression "(byte)pbVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iStack_160 = unaff_s0;" (assignment_expression "iStack_160 = unaff_s0" identifier = identifier) ;) (expression_statement "iStack_15c = iVar16;" (assignment_expression "iStack_15c = iVar16" identifier = identifier) ;) (expression_statement "pbStack_154 = param_7;" (assignment_expression "pbStack_154 = param_7" identifier = identifier) ;) (expression_statement "pbStack_150 = unaff_s4;" (assignment_expression "pbStack_150 = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_14c = unaff_s5;" (assignment_expression "pbStack_14c = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_148 = unaff_s6;" (assignment_expression "pbStack_148 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_144 = pcVar19;" (assignment_expression "pcStack_144 = pcVar19" identifier = identifier) ;) (if_statement "if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" if (parenthesized_expression "(uStack_12c != 0)" ( (binary_expression "uStack_12c != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" { (expression_statement "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);" (call_expression "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" (parenthesized_expression "(**(code **)(pcVar18 + 0x295c4))" ( (pointer_expression "**(code **)(pcVar18 + 0x295c4)" * (pointer_expression "*(code **)(pcVar18 + 0x295c4)" * (cast_expression "(code **)(pcVar18 + 0x295c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x295c4)" ( (binary_expression "pcVar18 + 0x295c4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" ( (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x17c0" (pointer_expression "*(int *)(pcVar18 + 0x29518)" * (cast_expression "(int *)(pcVar18 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x29518)" ( (binary_expression "pcVar18 + 0x29518" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x245c" (pointer_expression "*(int *)(pcVar18 + 0x29518)" * (cast_expression "(int *)(pcVar18 + 0x29518)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x29518)" ( (binary_expression "pcVar18 + 0x29518" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pbVar4 = abStack_1b0;" (assignment_expression "pbVar4 = abStack_1b0" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd4)" ( (binary_expression "pcStack_1c0 + -0x7fd4" identifier + number_literal) ))))) ;) (do_statement "do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);" do (compound_statement "{\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    }" { (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(iVar16 + 0x511c)" ( (binary_expression "iVar16 + 0x511c" identifier + number_literal) ))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar4 != abStack_1b0 + 0xc)" ( (binary_expression "pbVar4 != abStack_1b0 + 0xc" identifier != (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;" if (parenthesized_expression "(((int)uVar2 < 2) || (param_3 == (byte *)0x0))" ( (binary_expression "((int)uVar2 < 2) || (param_3 == (byte *)0x0)" (parenthesized_expression "((int)uVar2 < 2)" ( (binary_expression "(int)uVar2 < 2" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;)) (expression_statement "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(byte **)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(byte **)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f24)" ( (binary_expression "pcStack_1c0 + -0x7f24" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) , (binary_expression "param_2 + 0x245c" identifier + number_literal) ))) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f74))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f74)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f74)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f74)" ( (binary_expression "pcStack_1c0 + -0x7f74" identifier + number_literal) ))))) )) (argument_list "(param_3,pbVar3,0xffffffff)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002e3c0;" goto statement_identifier ;) })) })) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);" statement_identifier : (expression_statement "iVar16 = FUN_0002d790(iVar16 + 0x245c);" (assignment_expression "iVar16 = FUN_0002d790(iVar16 + 0x245c)" identifier = (call_expression "FUN_0002d790(iVar16 + 0x245c)" identifier (argument_list "(iVar16 + 0x245c)" ( (binary_expression "iVar16 + 0x245c" identifier + number_literal) )))) ;)) (if_statement "if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar17 = -1;\n  }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" else (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" { (expression_statement "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);" (call_expression "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7fb0))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7fb0)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7fb0)" * (cast_expression "(code **)(pcStack_1c0 + -0x7fb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7fb0)" ( (binary_expression "pcStack_1c0 + -0x7fb0" identifier + number_literal) ))))) )) (argument_list "(iVar16,abStack_1b0,0xc)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f1c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f1c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f1c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f1c)" ( (binary_expression "pcStack_1c0 + -0x7f1c" identifier + number_literal) ))))) )) (argument_list "(iVar16,abStack_1b0 + 0xc,0x40)" ( identifier , (binary_expression "abStack_1b0 + 0xc" identifier + number_literal) , number_literal ))) ;) (expression_statement "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);" (call_expression "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d98))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d98)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d98)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d98)" ( (binary_expression "pcStack_1c0 + -0x7d98" identifier + number_literal) ))))) )) (argument_list "(iVar16,param_3,pbVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7e8c))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7e8c)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7e8c)" * (cast_expression "(code **)(pcStack_1c0 + -0x7e8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7e8c)" ( (binary_expression "pcStack_1c0 + -0x7e8c" identifier + number_literal) ))))) )) (argument_list "(iVar16,iVar17,0x3c,uVar2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "puStack_1c4 = &uStack_1b4;" (assignment_expression "puStack_1c4 = &uStack_1b4" identifier = (pointer_expression "&uStack_1b4" & identifier)) ;) (expression_statement "uStack_1c8 = uVar2;" (assignment_expression "uStack_1c8 = uVar2" identifier = identifier) ;) (expression_statement "uStack_1cc = (uint)pbStack_130 & 0xff;" (assignment_expression "uStack_1cc = (uint)pbStack_130 & 0xff" identifier = (binary_expression "(uint)pbStack_130 & 0xff" (cast_expression "(uint)pbStack_130" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);" (assignment_expression "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbStack_1d0 = abStack_1b0 + 0xc;" (assignment_expression "pbStack_1d0 = abStack_1b0 + 0xc" identifier = (binary_expression "abStack_1b0 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);" (assignment_expression "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f40))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7f40)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7f40)" * (cast_expression "(code **)(pcStack_1c0 + -0x7f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7f40)" ( (binary_expression "pcStack_1c0 + -0x7f40" identifier + number_literal) ))))) )) (argument_list "(iVar16,param_2,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }" { (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d70))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7d70)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7d70)" * (cast_expression "(code **)(pcStack_1c0 + -0x7d70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7d70)" ( (binary_expression "pcStack_1c0 + -0x7d70" identifier + number_literal) ))))) )) (argument_list "(iVar16)" ( identifier )))) ;) (expression_statement "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);" (assignment_expression "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" identifier = (call_expression "(**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ee8))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ee8)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ee8)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ee8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ee8)" ( (binary_expression "pcStack_1c0 + -0x7ee8" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier )))) ;) }) (else_clause "else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" else (compound_statement "{\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" if (parenthesized_expression "(iVar6 == -2)" ( (binary_expression "iVar6 == -2" identifier == number_literal) )) (compound_statement "{\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" { (if_statement "if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" if (parenthesized_expression "(uStack_1b4 < 0x16)" ( (binary_expression "uStack_1b4 < 0x16" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" { (expression_statement "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();" (assignment_expression "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" identifier = (call_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" (parenthesized_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))" ( (pointer_expression "*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" * (parenthesized_expression "(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" ( (binary_expression "pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" * (cast_expression "(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" ( (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4" (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" ( (binary_expression "pcStack_1c0 + -0x7fd0" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_1b4 * 4" identifier * number_literal)) ))))) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar16;" return identifier ;) })) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) })) }))) (expression_statement "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);" (call_expression "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ea4))" ( (pointer_expression "**(code **)(pcStack_1c0 + -0x7ea4)" * (pointer_expression "*(code **)(pcStack_1c0 + -0x7ea4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7ea4)" ( (binary_expression "pcStack_1c0 + -0x7ea4" identifier + number_literal) ))))) )) (argument_list "(iVar16)" ( identifier ))) ;) }))) (if_statement "if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }" if (parenthesized_expression "(puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0))" ( (binary_expression "puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (pointer_expression "*(undefined4 **)(pcStack_1c0 + -0x7dc0)" * (cast_expression "(undefined4 **)(pcStack_1c0 + -0x7dc0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7dc0)" ( (binary_expression "pcStack_1c0 + -0x7dc0" identifier + number_literal) ))))))) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4)" identifier = (pointer_expression "*(code **)(pcStack_1c0 + -0x7df4)" * (cast_expression "(code **)(pcStack_1c0 + -0x7df4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_1c0 + -0x7df4)" ( (binary_expression "pcStack_1c0 + -0x7df4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = 0x2e638;" (assignment_expression "uVar5 = 0x2e638" identifier = number_literal) ;) (expression_statement "puVar8 = puStack_164;" (assignment_expression "puVar8 = puStack_164" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_208 = pcVar18 + 0x311d0;" (assignment_expression "pcStack_208 = pcVar18 + 0x311d0" identifier = (binary_expression "pcVar18 + 0x311d0" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29410)" ( (binary_expression "pcVar18 + 0x29410" identifier + number_literal) ))))))) ;) (expression_statement "uStack_1fc = 0x20e8080;" (assignment_expression "uStack_1fc = 0x20e8080" identifier = number_literal) ;) (expression_statement "uStack_1f8 = 0xa0000;" (assignment_expression "uStack_1f8 = 0xa0000" identifier = number_literal) ;) (expression_statement "uStack_1f4 = 0;" (assignment_expression "uStack_1f4 = 0" identifier = number_literal) ;) (expression_statement "uStack_1f0 = 0;" (assignment_expression "uStack_1f0 = 0" identifier = number_literal) ;) (expression_statement "*puVar8 = 0x20e8080;" (assignment_expression "*puVar8 = 0x20e8080" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0xa0000;" (assignment_expression "puVar8[1] = 0xa0000" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" { (expression_statement "*(undefined1 *)((int)puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 2)" * (cast_expression "(undefined1 *)((int)puVar8 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 2)" ( (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 3)" * (cast_expression "(undefined1 *)((int)puVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 3)" ( (binary_expression "(int)puVar8 + 3" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 1)" * (cast_expression "(undefined1 *)(puVar8 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" * (cast_expression "(undefined1 *)((int)puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 5)" ( (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 6)" * (cast_expression "(undefined1 *)((int)puVar8 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 6)" ( (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 7)" * (cast_expression "(undefined1 *)((int)puVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 7)" ( (binary_expression "(int)puVar8 + 7" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 2)" * (cast_expression "(undefined1 *)(puVar8 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 2)" ( (binary_expression "puVar8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 9)" * (cast_expression "(undefined1 *)((int)puVar8 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 9)" ( (binary_expression "(int)puVar8 + 9" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" * (cast_expression "(undefined1 *)((int)puVar8 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 10)" ( (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xb)" ( (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 3)" * (cast_expression "(undefined1 *)(puVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xd)" ( (binary_expression "(int)puVar8 + 0xd" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xe)" ( (binary_expression "(int)puVar8 + 0xe" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xf)" ( (binary_expression "(int)puVar8 + 0xf" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }" if (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410))" ( (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" * (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29410)" ( (binary_expression "pcVar18 + 0x29410" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x10;\n  }" { (return_statement "return 0x10;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x293dc);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x293dc)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x293dc)" * (cast_expression "(code **)(pcVar18 + 0x293dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x293dc)" ( (binary_expression "pcVar18 + 0x293dc" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = FUN_0002e758;" (assignment_expression "pcVar19 = FUN_0002e758" identifier = identifier) ;) (expression_statement "puStack_1ec = puVar7;" (assignment_expression "puStack_1ec = puVar7" identifier = identifier) ;) (expression_statement "uStack_1e4 = uVar5;" (assignment_expression "uStack_1e4 = uVar5" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_248 = pcVar18 + 0x310b8;" (assignment_expression "pcStack_248 = pcVar18 + 0x310b8" identifier = (binary_expression "pcVar18 + 0x310b8" identifier + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);" (assignment_expression "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8)" identifier = (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar18 + 0x292f8)" * (pointer_expression "*(int **)(pcVar18 + 0x292f8)" * (cast_expression "(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292f8)" ( (binary_expression "pcVar18 + 0x292f8" identifier + number_literal) ))))))) ;) (expression_statement "iVar6 = *(int *)(pcVar18 + 0x290d4);" (assignment_expression "iVar6 = *(int *)(pcVar18 + 0x290d4)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x290d4)" * (cast_expression "(int *)(pcVar18 + 0x290d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x290d4)" ( (binary_expression "pcVar18 + 0x290d4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x7700);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x7700)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x7700)" * (cast_expression "(undefined4 *)(iVar6 + 0x7700)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7700)" ( (binary_expression "iVar6 + 0x7700" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x7704);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x7704)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x7704)" * (cast_expression "(undefined4 *)(iVar6 + 0x7704)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7704)" ( (binary_expression "iVar6 + 0x7704" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc)" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)(iVar6 + 0x76fc)" * (cast_expression "(undefined4 *)(iVar6 + 0x76fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x76fc)" ( (binary_expression "iVar6 + 0x76fc" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }" { (expression_statement "uStack_23c = 0x6000000;" (assignment_expression "uStack_23c = 0x6000000" identifier = number_literal) ;) (expression_statement "uStack_238 = 0;" (assignment_expression "uStack_238 = 0" identifier = number_literal) ;) (expression_statement "uStack_234 = 0;" (assignment_expression "uStack_234 = 0" identifier = number_literal) ;) (expression_statement "uStack_233 = 0;" (assignment_expression "uStack_233 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0x6000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0x6000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" * (cast_expression "(undefined4 *)((int)puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 2)" ( (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" * (cast_expression "(undefined4 *)((int)puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 10)" * (cast_expression "(undefined1 *)((int)puVar7 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 10)" ( (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xb)" ( (binary_expression "(int)puVar7 + 0xb" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" else (if_statement "if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x2)" ( (binary_expression "param_2 == (byte *)0x2" identifier == (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" { (expression_statement "pbStack_230 = (byte *)0xa0a0200;" (assignment_expression "pbStack_230 = (byte *)0xa0a0200" identifier = (cast_expression "(byte *)0xa0a0200" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_22c = 0;" (assignment_expression "uStack_22c = 0" identifier = number_literal) ;) (expression_statement "uStack_228 = 0x24b;" (assignment_expression "uStack_228 = 0x24b" identifier = number_literal) ;) (expression_statement "*puVar7 = 0xa0a0200;" (assignment_expression "*puVar7 = 0xa0a0200" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0x24b;" (assignment_expression "puVar7[2] = 0x24b" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2 = pbStack_230;" (assignment_expression "param_2 = pbStack_230" identifier = identifier) ;) })))) (if_statement "if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8))" ( (binary_expression "puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)" identifier == (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar18 + 0x292f8)" * (pointer_expression "*(int **)(pcVar18 + 0x292f8)" * (cast_expression "(int **)(pcVar18 + 0x292f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292f8)" ( (binary_expression "pcVar18 + 0x292f8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x292c4);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x292c4)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x292c4)" * (cast_expression "(code **)(pcVar18 + 0x292c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x292c4)" ( (binary_expression "pcVar18 + 0x292c4" identifier + number_literal) ))))) ;) (expression_statement "pcVar20 = FUN_0002e898;" (assignment_expression "pcVar20 = FUN_0002e898" identifier = identifier) ;) (expression_statement "puStack_224 = puVar8;" (assignment_expression "puStack_224 = puVar8" identifier = identifier) ;) (expression_statement "pcStack_21c = pcVar19;" (assignment_expression "pcStack_21c = pcVar19" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);" (assignment_expression "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x291b8)" ( (binary_expression "pcVar18 + 0x291b8" identifier + number_literal) ))))))) ;) (expression_statement "iStack_264 = iVar16;" (assignment_expression "iStack_264 = iVar16" identifier = identifier) ;) (expression_statement "iStack_260 = iVar17;" (assignment_expression "iStack_260 = iVar17" identifier = identifier) ;) (expression_statement "pcStack_25c = pcVar20;" (assignment_expression "pcStack_25c = pcVar20" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);" (call_expression "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e)" (parenthesized_expression "(**(code **)(pcVar18 + 0x290d0))" ( (pointer_expression "**(code **)(pcVar18 + 0x290d0)" * (pointer_expression "*(code **)(pcVar18 + 0x290d0)" * (cast_expression "(code **)(pcVar18 + 0x290d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x290d0)" ( (binary_expression "pcVar18 + 0x290d0" identifier + number_literal) ))))) )) (argument_list "((int)&uStack_28c + 2,0,0x1e)" ( (binary_expression "(int)&uStack_28c + 2" (cast_expression "(int)&uStack_28c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_28c" & identifier)) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28f94);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28f94)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28f94)" * (cast_expression "(int *)(pcVar18 + 0x28f94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28f94)" ( (binary_expression "pcVar18 + 0x28f94" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(iVar16 + 0x76e0);" (assignment_expression "uVar15 = *(undefined4 *)(iVar16 + 0x76e0)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e0)" ( (binary_expression "iVar16 + 0x76e0" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar16 + 0x76e4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar16 + 0x76e4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e4)" ( (binary_expression "iVar16 + 0x76e4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar16 + 0x76e8);" (assignment_expression "uVar13 = *(undefined4 *)(iVar16 + 0x76e8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76e8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76e8)" ( (binary_expression "iVar16 + 0x76e8" identifier + number_literal) ))))) ;) (expression_statement "iStack_2d8 = *(int *)(iVar16 + 0x76ec);" (assignment_expression "iStack_2d8 = *(int *)(iVar16 + 0x76ec)" identifier = (pointer_expression "*(int *)(iVar16 + 0x76ec)" * (cast_expression "(int *)(iVar16 + 0x76ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76ec)" ( (binary_expression "iVar16 + 0x76ec" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(iVar16 + 0x76f0);" (assignment_expression "uVar11 = *(undefined4 *)(iVar16 + 0x76f0)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f0)" ( (binary_expression "iVar16 + 0x76f0" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76f4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76f4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f4)" ( (binary_expression "iVar16 + 0x76f4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76f8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76f8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76f8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76f8)" ( (binary_expression "iVar16 + 0x76f8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(iVar16 + 0x76dc)" * (cast_expression "(undefined4 *)(iVar16 + 0x76dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76dc)" ( (binary_expression "iVar16 + 0x76dc" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = uVar15;" (assignment_expression "puVar8[1] = uVar15" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar14;" (assignment_expression "puVar8[2] = uVar14" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar13;" (assignment_expression "puVar8[3] = uVar13" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = iStack_2d8;" (assignment_expression "puVar8[4] = iStack_2d8" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uVar11;" (assignment_expression "puVar8[5] = uVar11" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uVar10;" (assignment_expression "puVar8[6] = uVar10" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = uVar5;" (assignment_expression "puVar8[7] = uVar5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x1)" ( (binary_expression "param_2 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }" { (expression_statement "iStack_2d8 = 0;" (assignment_expression "iStack_2d8 = 0" identifier = number_literal) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" else (if_statement "if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" if (parenthesized_expression "(param_2 == (byte *)0x2)" ( (binary_expression "param_2 == (byte *)0x2" identifier == (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" { (expression_statement "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));" (assignment_expression "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier = (call_expression "CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" identifier (argument_list "(0x4a,CONCAT12(1,uStack_28c._2_2_))" ( number_literal , (call_expression "CONCAT12(1,uStack_28c._2_2_)" identifier (argument_list "(1,uStack_28c._2_2_)" ( number_literal , (field_expression "uStack_28c._2_2_" identifier . field_identifier) ))) )))) ;) (expression_statement "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);" (assignment_expression "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c)" identifier = (call_expression "CONCAT31(uStack_28c._0_3_,0x1c)" identifier (argument_list "(uStack_28c._0_3_,0x1c)" ( (field_expression "uStack_28c._0_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);" (assignment_expression "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288)" (field_expression "uStack_288._2_2_" identifier . field_identifier) = (call_expression "CONCAT11(0x40,(undefined1)uStack_288)" identifier (argument_list "(0x40,(undefined1)uStack_288)" ( number_literal , (cast_expression "(undefined1)uStack_288" ( (type_descriptor "undefined1" type_identifier) ) identifier) )))) ;) (expression_statement "*puVar8 = uStack_28c;" (assignment_expression "*puVar8 = uStack_28c" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "puVar8[1] = uStack_288;" (assignment_expression "puVar8[1] = uStack_288" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uStack_284;" (assignment_expression "puVar8[2] = uStack_284" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uStack_280;" (assignment_expression "puVar8[3] = uStack_280" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = iStack_27c;" (assignment_expression "puVar8[4] = iStack_27c" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uStack_278;" (assignment_expression "puVar8[5] = uStack_278" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uStack_274;" (assignment_expression "puVar8[6] = uStack_274" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[7] = uStack_270;" (assignment_expression "puVar8[7] = uStack_270" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iStack_2d8 = iStack_27c;" (assignment_expression "iStack_2d8 = iStack_27c" identifier = identifier) ;) })))) (if_statement "if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }" if (parenthesized_expression "(puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8))" ( (binary_expression "puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" * (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x291b8)" ( (binary_expression "pcVar18 + 0x291b8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0x20;\n  }" { (return_statement "return 0x20;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x29184);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x29184)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x29184)" * (cast_expression "(code **)(pcVar18 + 0x29184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x29184)" ( (binary_expression "pcVar18 + 0x29184" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = puStack_26c;" (assignment_expression "puVar8 = puStack_26c" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28fc4)" ( (binary_expression "pcVar18 + 0x28fc4" identifier + number_literal) ))))))) ;) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28da0);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28da0)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28da0)" * (cast_expression "(int *)(pcVar18 + 0x28da0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28da0)" ( (binary_expression "pcVar18 + 0x28da0" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76d4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76d4)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d4)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d4)" ( (binary_expression "iVar16 + 0x76d4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76d8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76d8)" identifier = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d8)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d8)" ( (binary_expression "iVar16 + 0x76d8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(iVar16 + 0x76d0)" * (cast_expression "(undefined4 *)(iVar16 + 0x76d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x76d0)" ( (binary_expression "iVar16 + 0x76d0" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = uVar10;" (assignment_expression "puVar8[1] = uVar10" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar5;" (assignment_expression "puVar8[2] = uVar5" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000;" (assignment_expression "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000" (pointer_expression "*(undefined4 *)((int)puVar8 + 2)" * (cast_expression "(undefined4 *)((int)puVar8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 2)" ( (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar8 + 6)" * (cast_expression "(undefined4 *)((int)puVar8 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 6)" ( (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" * (cast_expression "(undefined1 *)((int)puVar8 + 10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 10)" ( (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" * (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0xb)" ( (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" { (expression_statement "iStack_2d8 = 0x1c0a0800;" (assignment_expression "iStack_2d8 = 0x1c0a0800" identifier = number_literal) ;) (expression_statement "*puVar8 = 0x1c0a0800;" (assignment_expression "*puVar8 = 0x1c0a0800" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }" if (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4))" ( (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" identifier == (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" * (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28fc4)" ( (binary_expression "pcVar18 + 0x28fc4" identifier + number_literal) ))))))) )) (compound_statement "{\n    return 0xc;\n  }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28f90);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28f90)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x28f90)" * (cast_expression "(code **)(pcVar18 + 0x28f90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28f90)" ( (binary_expression "pcVar18 + 0x28f90" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar16 = **(int **)(pcVar18 + 0x28e80);" (assignment_expression "iVar16 = **(int **)(pcVar18 + 0x28e80)" identifier = (pointer_expression "**(int **)(pcVar18 + 0x28e80)" * (pointer_expression "*(int **)(pcVar18 + 0x28e80)" * (cast_expression "(int **)(pcVar18 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e80)" ( (binary_expression "pcVar18 + 0x28e80" identifier + number_literal) )))))) ;) (expression_statement "iVar17 = *(int *)(pcVar18 + 0x28c5c);" (assignment_expression "iVar17 = *(int *)(pcVar18 + 0x28c5c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x28c5c)" * (cast_expression "(int *)(pcVar18 + 0x28c5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28c5c)" ( (binary_expression "pcVar18 + 0x28c5c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar17 + 0x76c4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar17 + 0x76c4)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c4)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c4)" ( (binary_expression "iVar17 + 0x76c4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar17 + 0x76c8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar17 + 0x76c8)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c8)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c8)" ( (binary_expression "iVar17 + 0x76c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0)" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)(iVar17 + 0x76c0)" * (cast_expression "(undefined4 *)(iVar17 + 0x76c0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76c0)" ( (binary_expression "iVar17 + 0x76c0" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);" (assignment_expression "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc)" (pointer_expression "*(undefined1 *)(puVar7 + 3)" * (cast_expression "(undefined1 *)(puVar7 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76cc)" * (cast_expression "(undefined1 *)(iVar17 + 0x76cc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76cc)" ( (binary_expression "iVar17 + 0x76cc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xd)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xd)" ( (binary_expression "(int)puVar7 + 0xd" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76cd)" * (cast_expression "(undefined1 *)(iVar17 + 0x76cd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76cd)" ( (binary_expression "iVar17 + 0x76cd" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xe)" ( (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar17 + 0x76ce)" * (cast_expression "(undefined1 *)(iVar17 + 0x76ce)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x76ce)" ( (binary_expression "iVar17 + 0x76ce" identifier + number_literal) ))))) ;) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 1)" ( (binary_expression "iStack_2d8 == 1" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }" { (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0xff000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0xff000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" * (cast_expression "(undefined4 *)((int)puVar7 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 2)" ( (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" * (cast_expression "(undefined4 *)((int)puVar7 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 6)" ( (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 10)" * (cast_expression "(undefined4 *)((int)puVar7 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 10)" ( (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xe)" ( (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar7 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xf)" * (cast_expression "(undefined1 *)((int)puVar7 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xf)" ( (binary_expression "(int)puVar7 + 0xf" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" else (if_statement "if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" if (parenthesized_expression "(iStack_2d8 == 2)" ( (binary_expression "iStack_2d8 == 2" identifier == number_literal) )) (compound_statement "{\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" { (expression_statement "*puVar7 = 0xe0000;" (assignment_expression "*puVar7 = 0xe0000" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }" if (parenthesized_expression "(iVar16 == **(int **)(pcVar18 + 0x28e80))" ( (binary_expression "iVar16 == **(int **)(pcVar18 + 0x28e80)" identifier == (pointer_expression "**(int **)(pcVar18 + 0x28e80)" * (pointer_expression "*(int **)(pcVar18 + 0x28e80)" * (cast_expression "(int **)(pcVar18 + 0x28e80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e80)" ( (binary_expression "pcVar18 + 0x28e80" identifier + number_literal) )))))) )) (compound_statement "{\n    return 0xf;\n  }" { (return_statement "return 0xf;" return number_literal ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28e4c);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28e4c)" identifier = (pointer_expression "*(code **)(pcVar18 + 0x28e4c)" * (cast_expression "(code **)(pcVar18 + 0x28e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x28e4c)" ( (binary_expression "pcVar18 + 0x28e4c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;" return (binary_expression "*(int *)(pcVar18 + 0x28ae8) + 0x25b0" (pointer_expression "*(int *)(pcVar18 + 0x28ae8)" * (cast_expression "(int *)(pcVar18 + 0x28ae8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x28ae8)" ( (binary_expression "pcVar18 + 0x28ae8" identifier + number_literal) )))) + number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (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 (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 (array_declarator IDENT [ LIT ]) ;) (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 (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * 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 = (binary_expression IDENT + LIT)) ;) }) 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 IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (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 ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (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 (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_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 * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (binary_expression IDENT * LIT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression IDENT = 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 = (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( 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 (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 = IDENT) ;) (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) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) 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) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_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 , IDENT , LIT ))) ;) (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 , 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (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 ( (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 ( (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 *)) ) LIT)) ;) (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 ))) ;) (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 ))) ;) (expression_statement (assignment_expression 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 (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 != 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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = 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 , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (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 * (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 , (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 , 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (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 (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) ))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (call_expression IDENT (argument_list ( LIT , (field_expression IDENT . field_identifier) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return 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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (return_statement return (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ;) })))
(function_definition "int sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)\n\n{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" (primitive_type "int") (function_declarator "sg_ll_get_config(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" (identifier "sg_ll_get_config") (parameter_list "(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,\n                    byte param_6,byte *param_7)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "byte *param_5" (type_identifier "byte") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "byte param_6" (type_identifier "byte") (identifier "param_6")) (, ",") (parameter_declaration "byte *param_7" (type_identifier "byte") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  uint uVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  int unaff_s0;\n  int iVar16;\n  int iVar17;\n  byte *unaff_s2;\n  byte *unaff_s4;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  code *pcVar18;\n  code *pcVar19;\n  code *pcVar20;\n  int iStack_2d8;\n  undefined4 uStack_28c;\n  undefined4 uStack_288;\n  undefined4 uStack_284;\n  undefined4 uStack_280;\n  int iStack_27c;\n  undefined4 uStack_278;\n  undefined4 uStack_274;\n  undefined4 uStack_270;\n  undefined4 *puStack_26c;\n  int iStack_264;\n  int iStack_260;\n  code *pcStack_25c;\n  code *pcStack_248;\n  undefined4 uStack_23c;\n  undefined4 uStack_238;\n  undefined1 uStack_234;\n  undefined1 uStack_233;\n  byte *pbStack_230;\n  undefined4 uStack_22c;\n  undefined4 uStack_228;\n  undefined4 *puStack_224;\n  code *pcStack_21c;\n  code *pcStack_208;\n  undefined4 uStack_1fc;\n  undefined4 uStack_1f8;\n  undefined4 uStack_1f4;\n  undefined4 uStack_1f0;\n  undefined4 *puStack_1ec;\n  undefined4 uStack_1e4;\n  byte *pbStack_1d0;\n  uint uStack_1cc;\n  uint uStack_1c8;\n  uint *puStack_1c4;\n  code *pcStack_1c0;\n  uint uStack_1b4;\n  byte abStack_1b0 [76];\n  undefined4 *puStack_164;\n  int iStack_160;\n  int iStack_15c;\n  undefined4 *puStack_158;\n  byte *pbStack_154;\n  byte *pbStack_150;\n  byte *pbStack_14c;\n  byte *pbStack_148;\n  code *pcStack_144;\n  byte *pbStack_130;\n  uint uStack_12c;\n  undefined1 *puStack_128;\n  int *piStack_124;\n  undefined *puStack_120;\n  int iStack_118;\n  byte *pbStack_114;\n  byte abStack_110 [2];\n  undefined1 auStack_10e [4];\n  undefined1 uStack_10a;\n  undefined1 uStack_109;\n  undefined2 uStack_108;\n  undefined1 uStack_106;\n  undefined1 uStack_105;\n  byte abStack_104 [64];\n  int iStack_c4;\n  int iStack_bc;\n  int iStack_b8;\n  byte *pbStack_b4;\n  byte *pbStack_b0;\n  byte *pbStack_ac;\n  byte *pbStack_a8;\n  code *pcStack_a4;\n  byte *local_90;\n  undefined4 *local_8c;\n  byte *local_88;\n  int *local_84;\n  int local_78;\n  byte *local_74;\n  byte local_70 [2];\n  undefined2 local_6e;\n  undefined1 local_6c;\n  undefined1 local_6b;\n  undefined1 local_6a;\n  undefined1 local_69;\n  undefined1 local_68;\n  undefined1 local_67;\n  byte abStack_66 [2];\n  byte abStack_64 [64];\n  byte *local_24;\n  \n  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;\n  local_70[0] = 0x46;\n  local_70[1] = 0;\n  local_6e = 0;\n  local_6c = 0;\n  local_6b = 0;\n  local_6a = 0;\n  local_69 = 0;\n  local_68 = 0;\n  local_67 = 0;\n  if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }\n  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }\n  pcVar18 = sg_ll_get_performance;\n  pbVar9 = local_24;\n  puVar12 = PTR___stack_chk_fail_00057a1c;\n  (*(code *)PTR___stack_chk_fail_00057a1c)();\n  puVar8 = local_8c;\n  pbVar4 = local_90;\n  puStack_120 = puVar12 + 0x31938;\n  pcStack_a4 = pcVar18;\n  pbStack_a8 = unaff_s5;\n  pbStack_ac = unaff_s4;\n  pbStack_b0 = param_7;\n  pbStack_b4 = unaff_s2;\n  iStack_b8 = iVar16;\n  iStack_bc = unaff_s0;\n  iStack_c4 = **(int **)(puVar12 + 0x29b78);\n  abStack_110[0] = 0xac;\n  abStack_110[1] = 0;\n  auStack_10e[0] = 0;\n  auStack_10e[1] = 0;\n  auStack_10e[2] = 0;\n  auStack_10e[3] = 0;\n  uStack_10a = 0;\n  uStack_109 = 0;\n  uStack_108 = 0;\n  uStack_106 = 0;\n  uStack_105 = 0;\n  if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }\n  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }\n  pcVar18 = *(code **)(puStack_120 + -0x7df4);\n  pcVar19 = sg_ll_set_streaming;\n  iVar17 = iStack_c4;\n  (*pcVar18)();\n  uVar2 = uStack_12c;\n  pcStack_1c0 = pcVar18 + 0x314e8;\n  puStack_158 = puVar8;\n  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);\n  abStack_1b0[0] = 0xb6;\n  abStack_1b0[1] = 0;\n  abStack_1b0[2] = 0;\n  abStack_1b0[3] = 0;\n  abStack_1b0[4] = 0;\n  abStack_1b0[5] = 0;\n  abStack_1b0[6] = 0;\n  abStack_1b0[7] = 0;\n  abStack_1b0[0xb] = 0;\n  abStack_1b0[8] = (byte)param_2;\n  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);\n  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);\n  abStack_1b0[10] = (byte)pbVar3;\n  iStack_160 = unaff_s0;\n  iStack_15c = iVar16;\n  pbStack_154 = param_7;\n  pbStack_150 = unaff_s4;\n  pbStack_14c = unaff_s5;\n  pbStack_148 = unaff_s6;\n  pcStack_144 = pcVar19;\n  if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }\n  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\nLAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);\n  if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }\n  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }\n  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);\n  uVar5 = 0x2e638;\n  puVar8 = puStack_164;\n  (*pcVar18)();\n  pcStack_208 = pcVar18 + 0x311d0;\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);\n  uStack_1fc = 0x20e8080;\n  uStack_1f8 = 0xa0000;\n  uStack_1f4 = 0;\n  uStack_1f0 = 0;\n  *puVar8 = 0x20e8080;\n  puVar8[1] = 0xa0000;\n  puVar8[2] = 0;\n  puVar8[3] = 0;\n  if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x293dc);\n  pcVar19 = FUN_0002e758;\n  puStack_1ec = puVar7;\n  uStack_1e4 = uVar5;\n  (*pcVar18)();\n  pcStack_248 = pcVar18 + 0x310b8;\n  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);\n  iVar6 = *(int *)(pcVar18 + 0x290d4);\n  uVar10 = *(undefined4 *)(iVar6 + 0x7700);\n  uVar5 = *(undefined4 *)(iVar6 + 0x7704);\n  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }\n  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x292c4);\n  pcVar20 = FUN_0002e898;\n  puStack_224 = puVar8;\n  pcStack_21c = pcVar19;\n  (*pcVar18)();\n  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);\n  iStack_264 = iVar16;\n  iStack_260 = iVar17;\n  pcStack_25c = pcVar20;\n  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);\n  iVar16 = *(int *)(pcVar18 + 0x28f94);\n  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);\n  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);\n  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);\n  iStack_2d8 = *(int *)(iVar16 + 0x76ec);\n  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);\n  puVar8[1] = uVar15;\n  puVar8[2] = uVar14;\n  puVar8[3] = uVar13;\n  puVar8[4] = iStack_2d8;\n  puVar8[5] = uVar11;\n  puVar8[6] = uVar10;\n  puVar8[7] = uVar5;\n  if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }\n  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x29184);\n  puVar8 = puStack_26c;\n  (*pcVar18)();\n  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);\n  iVar16 = *(int *)(pcVar18 + 0x28da0);\n  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);\n  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);\n  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);\n  puVar8[1] = uVar10;\n  puVar8[2] = uVar5;\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }\n  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28f90);\n  (*pcVar18)();\n  iVar16 = **(int **)(pcVar18 + 0x28e80);\n  iVar17 = *(int *)(pcVar18 + 0x28c5c);\n  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);\n  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);\n  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);\n  puVar7[1] = uVar10;\n  puVar7[2] = uVar5;\n  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);\n  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);\n  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);\n  if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }\n  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0x28e4c);\n  (*pcVar18)();\n  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *unaff_s2;" (type_identifier "byte") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "byte *unaff_s4;" (type_identifier "byte") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "byte *unaff_s5;" (type_identifier "byte") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int iStack_2d8;" (primitive_type "int") (identifier "iStack_2d8") (; ";")) (declaration "undefined4 uStack_28c;" (type_identifier "undefined4") (identifier "uStack_28c") (; ";")) (declaration "undefined4 uStack_288;" (type_identifier "undefined4") (identifier "uStack_288") (; ";")) (declaration "undefined4 uStack_284;" (type_identifier "undefined4") (identifier "uStack_284") (; ";")) (declaration "undefined4 uStack_280;" (type_identifier "undefined4") (identifier "uStack_280") (; ";")) (declaration "int iStack_27c;" (primitive_type "int") (identifier "iStack_27c") (; ";")) (declaration "undefined4 uStack_278;" (type_identifier "undefined4") (identifier "uStack_278") (; ";")) (declaration "undefined4 uStack_274;" (type_identifier "undefined4") (identifier "uStack_274") (; ";")) (declaration "undefined4 uStack_270;" (type_identifier "undefined4") (identifier "uStack_270") (; ";")) (declaration "undefined4 *puStack_26c;" (type_identifier "undefined4") (pointer_declarator "*puStack_26c" (* "*") (identifier "puStack_26c")) (; ";")) (declaration "int iStack_264;" (primitive_type "int") (identifier "iStack_264") (; ";")) (declaration "int iStack_260;" (primitive_type "int") (identifier "iStack_260") (; ";")) (declaration "code *pcStack_25c;" (type_identifier "code") (pointer_declarator "*pcStack_25c" (* "*") (identifier "pcStack_25c")) (; ";")) (declaration "code *pcStack_248;" (type_identifier "code") (pointer_declarator "*pcStack_248" (* "*") (identifier "pcStack_248")) (; ";")) (declaration "undefined4 uStack_23c;" (type_identifier "undefined4") (identifier "uStack_23c") (; ";")) (declaration "undefined4 uStack_238;" (type_identifier "undefined4") (identifier "uStack_238") (; ";")) (declaration "undefined1 uStack_234;" (type_identifier "undefined1") (identifier "uStack_234") (; ";")) (declaration "undefined1 uStack_233;" (type_identifier "undefined1") (identifier "uStack_233") (; ";")) (declaration "byte *pbStack_230;" (type_identifier "byte") (pointer_declarator "*pbStack_230" (* "*") (identifier "pbStack_230")) (; ";")) (declaration "undefined4 uStack_22c;" (type_identifier "undefined4") (identifier "uStack_22c") (; ";")) (declaration "undefined4 uStack_228;" (type_identifier "undefined4") (identifier "uStack_228") (; ";")) (declaration "undefined4 *puStack_224;" (type_identifier "undefined4") (pointer_declarator "*puStack_224" (* "*") (identifier "puStack_224")) (; ";")) (declaration "code *pcStack_21c;" (type_identifier "code") (pointer_declarator "*pcStack_21c" (* "*") (identifier "pcStack_21c")) (; ";")) (declaration "code *pcStack_208;" (type_identifier "code") (pointer_declarator "*pcStack_208" (* "*") (identifier "pcStack_208")) (; ";")) (declaration "undefined4 uStack_1fc;" (type_identifier "undefined4") (identifier "uStack_1fc") (; ";")) (declaration "undefined4 uStack_1f8;" (type_identifier "undefined4") (identifier "uStack_1f8") (; ";")) (declaration "undefined4 uStack_1f4;" (type_identifier "undefined4") (identifier "uStack_1f4") (; ";")) (declaration "undefined4 uStack_1f0;" (type_identifier "undefined4") (identifier "uStack_1f0") (; ";")) (declaration "undefined4 *puStack_1ec;" (type_identifier "undefined4") (pointer_declarator "*puStack_1ec" (* "*") (identifier "puStack_1ec")) (; ";")) (declaration "undefined4 uStack_1e4;" (type_identifier "undefined4") (identifier "uStack_1e4") (; ";")) (declaration "byte *pbStack_1d0;" (type_identifier "byte") (pointer_declarator "*pbStack_1d0" (* "*") (identifier "pbStack_1d0")) (; ";")) (declaration "uint uStack_1cc;" (type_identifier "uint") (identifier "uStack_1cc") (; ";")) (declaration "uint uStack_1c8;" (type_identifier "uint") (identifier "uStack_1c8") (; ";")) (declaration "uint *puStack_1c4;" (type_identifier "uint") (pointer_declarator "*puStack_1c4" (* "*") (identifier "puStack_1c4")) (; ";")) (declaration "code *pcStack_1c0;" (type_identifier "code") (pointer_declarator "*pcStack_1c0" (* "*") (identifier "pcStack_1c0")) (; ";")) (declaration "uint uStack_1b4;" (type_identifier "uint") (identifier "uStack_1b4") (; ";")) (declaration "byte abStack_1b0 [76];" (type_identifier "byte") (array_declarator "abStack_1b0 [76]" (identifier "abStack_1b0") ([ "[") (number_literal "76") (] "]")) (; ";")) (declaration "undefined4 *puStack_164;" (type_identifier "undefined4") (pointer_declarator "*puStack_164" (* "*") (identifier "puStack_164")) (; ";")) (declaration "int iStack_160;" (primitive_type "int") (identifier "iStack_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 "byte *pbStack_154;" (type_identifier "byte") (pointer_declarator "*pbStack_154" (* "*") (identifier "pbStack_154")) (; ";")) (declaration "byte *pbStack_150;" (type_identifier "byte") (pointer_declarator "*pbStack_150" (* "*") (identifier "pbStack_150")) (; ";")) (declaration "byte *pbStack_14c;" (type_identifier "byte") (pointer_declarator "*pbStack_14c" (* "*") (identifier "pbStack_14c")) (; ";")) (declaration "byte *pbStack_148;" (type_identifier "byte") (pointer_declarator "*pbStack_148" (* "*") (identifier "pbStack_148")) (; ";")) (declaration "code *pcStack_144;" (type_identifier "code") (pointer_declarator "*pcStack_144" (* "*") (identifier "pcStack_144")) (; ";")) (declaration "byte *pbStack_130;" (type_identifier "byte") (pointer_declarator "*pbStack_130" (* "*") (identifier "pbStack_130")) (; ";")) (declaration "uint uStack_12c;" (type_identifier "uint") (identifier "uStack_12c") (; ";")) (declaration "undefined1 *puStack_128;" (type_identifier "undefined1") (pointer_declarator "*puStack_128" (* "*") (identifier "puStack_128")) (; ";")) (declaration "int *piStack_124;" (primitive_type "int") (pointer_declarator "*piStack_124" (* "*") (identifier "piStack_124")) (; ";")) (declaration "undefined *puStack_120;" (type_identifier "undefined") (pointer_declarator "*puStack_120" (* "*") (identifier "puStack_120")) (; ";")) (declaration "int iStack_118;" (primitive_type "int") (identifier "iStack_118") (; ";")) (declaration "byte *pbStack_114;" (type_identifier "byte") (pointer_declarator "*pbStack_114" (* "*") (identifier "pbStack_114")) (; ";")) (declaration "byte abStack_110 [2];" (type_identifier "byte") (array_declarator "abStack_110 [2]" (identifier "abStack_110") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 auStack_10e [4];" (type_identifier "undefined1") (array_declarator "auStack_10e [4]" (identifier "auStack_10e") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 uStack_10a;" (type_identifier "undefined1") (identifier "uStack_10a") (; ";")) (declaration "undefined1 uStack_109;" (type_identifier "undefined1") (identifier "uStack_109") (; ";")) (declaration "undefined2 uStack_108;" (type_identifier "undefined2") (identifier "uStack_108") (; ";")) (declaration "undefined1 uStack_106;" (type_identifier "undefined1") (identifier "uStack_106") (; ";")) (declaration "undefined1 uStack_105;" (type_identifier "undefined1") (identifier "uStack_105") (; ";")) (declaration "byte abStack_104 [64];" (type_identifier "byte") (array_declarator "abStack_104 [64]" (identifier "abStack_104") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "int iStack_b8;" (primitive_type "int") (identifier "iStack_b8") (; ";")) (declaration "byte *pbStack_b4;" (type_identifier "byte") (pointer_declarator "*pbStack_b4" (* "*") (identifier "pbStack_b4")) (; ";")) (declaration "byte *pbStack_b0;" (type_identifier "byte") (pointer_declarator "*pbStack_b0" (* "*") (identifier "pbStack_b0")) (; ";")) (declaration "byte *pbStack_ac;" (type_identifier "byte") (pointer_declarator "*pbStack_ac" (* "*") (identifier "pbStack_ac")) (; ";")) (declaration "byte *pbStack_a8;" (type_identifier "byte") (pointer_declarator "*pbStack_a8" (* "*") (identifier "pbStack_a8")) (; ";")) (declaration "code *pcStack_a4;" (type_identifier "code") (pointer_declarator "*pcStack_a4" (* "*") (identifier "pcStack_a4")) (; ";")) (declaration "byte *local_90;" (type_identifier "byte") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined4 *local_8c;" (type_identifier "undefined4") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "byte *local_88;" (type_identifier "byte") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "byte *local_74;" (type_identifier "byte") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "byte local_70 [2];" (type_identifier "byte") (array_declarator "local_70 [2]" (identifier "local_70") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined2 local_6e;" (type_identifier "undefined2") (identifier "local_6e") (; ";")) (declaration "undefined1 local_6c;" (type_identifier "undefined1") (identifier "local_6c") (; ";")) (declaration "undefined1 local_6b;" (type_identifier "undefined1") (identifier "local_6b") (; ";")) (declaration "undefined1 local_6a;" (type_identifier "undefined1") (identifier "local_6a") (; ";")) (declaration "undefined1 local_69;" (type_identifier "undefined1") (identifier "local_69") (; ";")) (declaration "undefined1 local_68;" (type_identifier "undefined1") (identifier "local_68") (; ";")) (declaration "undefined1 local_67;" (type_identifier "undefined1") (identifier "local_67") (; ";")) (declaration "byte abStack_66 [2];" (type_identifier "byte") (array_declarator "abStack_66 [2]" (identifier "abStack_66") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "byte abStack_64 [64];" (type_identifier "byte") (array_declarator "abStack_64 [64]" (identifier "abStack_64") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "local_24 = *(byte **)PTR___stack_chk_guard_00057a50;" (assignment_expression "local_24 = *(byte **)PTR___stack_chk_guard_00057a50" (identifier "local_24") (= "=") (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_00057a50")))) (; ";")) (expression_statement "local_70[0] = 0x46;" (assignment_expression "local_70[0] = 0x46" (subscript_expression "local_70[0]" (identifier "local_70") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x46")) (; ";")) (expression_statement "local_70[1] = 0;" (assignment_expression "local_70[1] = 0" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6e = 0;" (assignment_expression "local_6e = 0" (identifier "local_6e") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" (identifier "local_6c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6b = 0;" (assignment_expression "local_6b = 0" (identifier "local_6b") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6a = 0;" (assignment_expression "local_6a = 0" (identifier "local_6a") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_69 = 0;" (assignment_expression "local_69 = 0" (identifier "local_69") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_67 = 0;" (assignment_expression "local_67 = 0" (identifier "local_67") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 < (byte *)0x4) {\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }\n  else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" (if "if") (parenthesized_expression "(param_2 < (byte *)0x4)" (( "(") (binary_expression "param_2 < (byte *)0x4" (identifier "param_2") (< "<") (cast_expression "(byte *)0x4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n    local_70[1] = (byte)param_2;\n    pbVar3 = param_4;\n    unaff_s4 = param_4;\n    unaff_s5 = param_1;\n    if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }\n  }" ({ "{") (expression_statement "local_70[1] = (byte)param_2;" (assignment_expression "local_70[1] = (byte)param_2" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)param_2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" (identifier "pbVar3") (= "=") (identifier "param_4")) (; ";")) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" (identifier "unaff_s4") (= "=") (identifier "param_4")) (; ";")) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_3 < (byte *)0x10000) {\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" (if "if") (parenthesized_expression "(param_3 < (byte *)0x10000)" (( "(") (binary_expression "param_3 < (byte *)0x10000" (identifier "param_3") (< "<") (cast_expression "(byte *)0x10000" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10000"))) () ")")) (compound_statement "{\n      local_6e = SUB42(param_3,0);\n      if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }\n    }" ({ "{") (expression_statement "local_6e = SUB42(param_3,0);" (assignment_expression "local_6e = SUB42(param_3,0)" (identifier "local_6e") (= "=") (call_expression "SUB42(param_3,0)" (identifier "SUB42") (argument_list "(param_3,0)" (( "(") (identifier "param_3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (param_5 < (byte *)0x10000) {\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }\n      else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" (if "if") (parenthesized_expression "(param_5 < (byte *)0x10000)" (( "(") (binary_expression "param_5 < (byte *)0x10000" (identifier "param_5") (< "<") (cast_expression "(byte *)0x10000" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10000"))) () ")")) (compound_statement "{\n        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);\n        local_69 = (undefined1)((uint)param_5 >> 8);\n        local_68 = SUB41(param_5,0);\n        if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }\n        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }\n      }" ({ "{") (expression_statement "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);" (assignment_expression "local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_)" (identifier "local_74") (= "=") (cast_expression "(byte *)CONCAT22((short)param_5,local_74._2_2_)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22((short)param_5,local_74._2_2_)" (identifier "CONCAT22") (argument_list "((short)param_5,local_74._2_2_)" (( "(") (cast_expression "(short)param_5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "param_5")) (, ",") (field_expression "local_74._2_2_" (identifier "local_74") (. ".") (field_identifier "_2_2_")) () ")"))))) (; ";")) (expression_statement "local_69 = (undefined1)((uint)param_5 >> 8);" (assignment_expression "local_69 = (undefined1)((uint)param_5 >> 8)" (identifier "local_69") (= "=") (call_expression "(undefined1)((uint)param_5 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_5 >> 8)" (( "(") (binary_expression "(uint)param_5 >> 8" (cast_expression "(uint)param_5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_68 = SUB41(param_5,0);" (assignment_expression "local_68 = SUB41(param_5,0)" (identifier "local_68") (= "=") (call_expression "SUB41(param_5,0)" (identifier "SUB41") (argument_list "(param_5,0)" (( "(") (identifier "param_5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (param_7 != (byte *)0x0) {\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" (if "if") (parenthesized_expression "(param_7 != (byte *)0x0)" (( "(") (binary_expression "param_7 != (byte *)0x0" (identifier "param_7") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);\n          pbVar4 = local_70;\n          unaff_s6 = abStack_66;\n          unaff_s2 = PTR_LAB_0005783c + 0x511c;\n          do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);\n          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);\n        }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0)" (( "(") (binary_expression "PTR_s__00057840 + 0x17c0" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x17c0")) (, ",") (binary_expression "PTR_s__00057840 + 0x23e0" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23e0")) () ")"))) (; ";")) (expression_statement "pbVar4 = local_70;" (assignment_expression "pbVar4 = local_70" (identifier "pbVar4") (= "=") (identifier "local_70")) (; ";")) (expression_statement "unaff_s6 = abStack_66;" (assignment_expression "unaff_s6 = abStack_66" (identifier "unaff_s6") (= "=") (identifier "abStack_66")) (; ";")) (expression_statement "unaff_s2 = PTR_LAB_0005783c + 0x511c;" (assignment_expression "unaff_s2 = PTR_LAB_0005783c + 0x511c" (identifier "unaff_s2") (= "=") (binary_expression "PTR_LAB_0005783c + 0x511c" (identifier "PTR_LAB_0005783c") (+ "+") (number_literal "0x511c"))) (; ";")) (do_statement "do {\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          } while (pbVar4 != unaff_s6);" (do "do") (compound_statement "{\n            param_2 = (byte *)(uint)*pbVar4;\n            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);\n            pbVar4 = pbVar4 + 1;\n          }" ({ "{") (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" (identifier "param_2") (= "=") (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(unaff_s2);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar4 != unaff_s6)" (( "(") (binary_expression "pbVar4 != unaff_s6" (identifier "pbVar4") (!= "!=") (identifier "unaff_s6")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x29c4)" (( "(") (binary_expression "PTR_s__00057840 + 0x29c4" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x29c4")) () ")"))) (; ";")) (} "}"))) (expression_statement "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);" (assignment_expression "unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0)" (identifier "unaff_s0") (= "=") (call_expression "FUN_0002d790(PTR_s__00057840 + 0x23e0)" (identifier "FUN_0002d790") (argument_list "(PTR_s__00057840 + 0x23e0)" (( "(") (binary_expression "PTR_s__00057840 + 0x23e0" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23e0")) () ")")))) (; ";")) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" (if "if") (parenthesized_expression "(unaff_s0 == 0)" (( "(") (binary_expression "unaff_s0 == 0" (identifier "unaff_s0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar16 = -1;\n        }" ({ "{") (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" (else "else") (compound_statement "{\n          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);\n          unaff_s2 = abStack_64;\n          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);\n          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);\n          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);\n          local_84 = &local_78;\n          local_88 = param_7;\n          local_8c = (undefined4 *)(uint)param_6;\n          param_2 = PTR_s__00057840 + 0x23e0;\n          local_90 = unaff_s2;\n          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);\n          if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }\n          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);\n          pbVar3 = param_5;\n        }" ({ "{") (expression_statement "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);" (call_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_cdb_00057860)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_cdb_00057860" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_cdb_00057860" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_cdb_00057860"))) () ")")) (argument_list "(unaff_s0,local_70,10)" (( "(") (identifier "unaff_s0") (, ",") (identifier "local_70") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "unaff_s2 = abStack_64;" (assignment_expression "unaff_s2 = abStack_64" (identifier "unaff_s2") (= "=") (identifier "abStack_64")) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);" (call_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_sense_000578f4)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_sense_000578f4" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_sense_000578f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_sense_000578f4"))) () ")")) (argument_list "(unaff_s0,unaff_s2,0x40)" (( "(") (identifier "unaff_s0") (, ",") (identifier "unaff_s2") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);" (call_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5)" (parenthesized_expression "(*(code *)PTR_set_scsi_pt_data_in_00057a84)" (( "(") (pointer_expression "*(code *)PTR_set_scsi_pt_data_in_00057a84" (* "*") (cast_expression "(code *)PTR_set_scsi_pt_data_in_00057a84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_scsi_pt_data_in_00057a84"))) () ")")) (argument_list "(unaff_s0,param_4,param_5)" (( "(") (identifier "unaff_s0") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);" (assignment_expression "param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" (identifier "param_3") (= "=") (cast_expression "(byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7)" (parenthesized_expression "(*(code *)PTR_do_scsi_pt_00057984)" (( "(") (pointer_expression "*(code *)PTR_do_scsi_pt_00057984" (* "*") (cast_expression "(code *)PTR_do_scsi_pt_00057984" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_scsi_pt_00057984"))) () ")")) (argument_list "(unaff_s0,param_1,0x3c,param_7)" (( "(") (identifier "unaff_s0") (, ",") (identifier "param_1") (, ",") (number_literal "0x3c") (, ",") (identifier "param_7") () ")"))))) (; ";")) (expression_statement "local_84 = &local_78;" (assignment_expression "local_84 = &local_78" (identifier "local_84") (= "=") (pointer_expression "&local_78" (& "&") (identifier "local_78"))) (; ";")) (expression_statement "local_88 = param_7;" (assignment_expression "local_88 = param_7" (identifier "local_88") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_8c = (undefined4 *)(uint)param_6;" (assignment_expression "local_8c = (undefined4 *)(uint)param_6" (identifier "local_8c") (= "=") (cast_expression "(undefined4 *)(uint)param_6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)param_6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_6")))) (; ";")) (expression_statement "param_2 = PTR_s__00057840 + 0x23e0;" (assignment_expression "param_2 = PTR_s__00057840 + 0x23e0" (identifier "param_2") (= "=") (binary_expression "PTR_s__00057840 + 0x23e0" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23e0"))) (; ";")) (expression_statement "local_90 = unaff_s2;" (assignment_expression "local_90 = unaff_s2" (identifier "local_90") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_sg_cmds_process_resp_000578d0)" (( "(") (pointer_expression "*(code *)PTR_sg_cmds_process_resp_000578d0" (* "*") (cast_expression "(code *)PTR_sg_cmds_process_resp_000578d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_cmds_process_resp_000578d0"))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")"))))) (; ";")) (if_statement "if (pbVar3 == (byte *)0xffffffff) {\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }\n          else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0xffffffff)" (( "(") (binary_expression "pbVar3 == (byte *)0xffffffff" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);\n            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);\n          }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);" (assignment_expression "uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_get_scsi_pt_os_err_00057aa0)" (( "(") (pointer_expression "*(code *)PTR_get_scsi_pt_os_err_00057aa0" (* "*") (cast_expression "(code *)PTR_get_scsi_pt_os_err_00057aa0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_get_scsi_pt_os_err_00057aa0"))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")")))) (; ";")) (expression_statement "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);" (assignment_expression "iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5)" (identifier "iVar16") (= "=") (call_expression "(*(code *)PTR_sg_convert_errno_00057928)(uVar5)" (parenthesized_expression "(*(code *)PTR_sg_convert_errno_00057928)" (( "(") (pointer_expression "*(code *)PTR_sg_convert_errno_00057928" (* "*") (cast_expression "(code *)PTR_sg_convert_errno_00057928" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sg_convert_errno_00057928"))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")")))) (; ";")) (} "}")) (else_clause "else if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (else "else") (if_statement "if (pbVar3 == (byte *)0xfffffffe) {\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0xfffffffe)" (( "(") (binary_expression "pbVar3 == (byte *)0xfffffffe" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0xfffffffe" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) () ")")) (compound_statement "{\n            if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" ({ "{") (if_statement "if (local_78 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" (if "if") (parenthesized_expression "(local_78 - 5U < 0x11)" (( "(") (binary_expression "local_78 - 5U < 0x11" (binary_expression "local_78 - 5U" (identifier "local_78") (- "-") (number_literal "5U")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n                    \n                    \n              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();\n              return iVar16;\n            }" ({ "{") (expression_statement "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )();" (assignment_expression "iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" (identifier "iVar16") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))\n                       )" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (* "*") (cast_expression "(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8)" (( "(") (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8" (binary_expression "PTR_s__00057840 + (local_78 - 5U) * 4" (identifier "PTR_s__00057840") (+ "+") (binary_expression "(local_78 - 5U) * 4" (parenthesized_expression "(local_78 - 5U)" (( "(") (binary_expression "local_78 - 5U" (identifier "local_78") (- "-") (number_literal "5U")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x24c8")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (else "else") (if_statement "if ((int)param_7 < 3) {\n            iVar16 = 0;\n          }\n          else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (if "if") (parenthesized_expression "((int)param_7 < 3)" (( "(") (binary_expression "(int)param_7 < 3" (cast_expression "(int)param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_7")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n            iVar16 = 0;\n          }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar16 = 0;\n            if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (3 < (int)pbVar3) {\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" (if "if") (parenthesized_expression "(3 < (int)pbVar3)" (( "(") (binary_expression "3 < (int)pbVar3" (number_literal "3") (< "<") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) () ")")) (compound_statement "{\n              local_74 = *(byte **)param_4;\n              param_2 = local_74;\n              if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }\n              if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }\n              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);\n              if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }\n            }" ({ "{") (expression_statement "local_74 = *(byte **)param_4;" (assignment_expression "local_74 = *(byte **)param_4" (identifier "local_74") (= "=") (pointer_expression "*(byte **)param_4" (* "*") (cast_expression "(byte **)param_4" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_4")))) (; ";")) (expression_statement "param_2 = local_74;" (assignment_expression "param_2 = local_74" (identifier "param_2") (= "=") (identifier "local_74")) (; ";")) (if_statement "if ((int)local_74 < 0) {\n                param_2 = (byte *)0x0;\n              }" (if "if") (parenthesized_expression "((int)local_74 < 0)" (( "(") (binary_expression "(int)local_74 < 0" (cast_expression "(int)local_74" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_74")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                param_2 = (byte *)0x0;\n              }" ({ "{") (expression_statement "param_2 = (byte *)0x0;" (assignment_expression "param_2 = (byte *)0x0" (identifier "param_2") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if ((int)pbVar3 <= (int)param_2) {\n                param_2 = pbVar3;\n              }" (if "if") (parenthesized_expression "((int)pbVar3 <= (int)param_2)" (( "(") (binary_expression "(int)pbVar3 <= (int)param_2" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (<= "<=") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n                param_2 = pbVar3;\n              }" ({ "{") (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" (identifier "param_2") (= "=") (identifier "pbVar3")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0)" (( "(") (binary_expression "PTR_s__00057840 + 0x23f4" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23f4")) (, ",") (binary_expression "PTR_s__00057840 + 0x23e0" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23e0")) () ")"))) (; ";")) (if_statement "if (param_7 == (byte *)0x3) {\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }\n              else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" (if "if") (parenthesized_expression "(param_7 == (byte *)0x3)" (( "(") (binary_expression "param_7 == (byte *)0x3" (identifier "param_7") (== "==") (cast_expression "(byte *)0x3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n                if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }\n                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);\n                param_3 = (byte *)0xffffffff;\n                pbVar3 = (byte *)0x100;\n                if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n                param_2 = pbVar3;\n              }" ({ "{") (if_statement "if ((int)param_2 < 0x101) {\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }\n                else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" (if "if") (parenthesized_expression "((int)param_2 < 0x101)" (( "(") (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "0x101")) () ")")) (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x17b4;\n                }" ({ "{") (expression_statement "puVar12 = PTR_s__00057840 + 0x17b4;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x17b4" (identifier "puVar12") (= "=") (binary_expression "PTR_s__00057840 + 0x17b4" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x17b4"))) (; ";")) (} "}")) (else_clause "else {\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" (else "else") (compound_statement "{\n                  puVar12 = PTR_s__00057840 + 0x1b00;\n                }" ({ "{") (expression_statement "puVar12 = PTR_s__00057840 + 0x1b00;" (assignment_expression "puVar12 = PTR_s__00057840 + 0x1b00" (identifier "puVar12") (= "=") (binary_expression "PTR_s__00057840 + 0x1b00" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x1b00"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_LAB_0005783c + 0x55c4,puVar12)" (( "(") (binary_expression "PTR_LAB_0005783c + 0x55c4" (identifier "PTR_LAB_0005783c") (+ "+") (number_literal "0x55c4")) (, ",") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "param_3 = (byte *)0xffffffff;" (assignment_expression "param_3 = (byte *)0xffffffff" (identifier "param_3") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pbVar3 = (byte *)0x100;" (assignment_expression "pbVar3 = (byte *)0x100" (identifier "pbVar3") (= "=") (cast_expression "(byte *)0x100" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100"))) (; ";")) (if_statement "if ((int)param_2 < 0x101) {\n                  pbVar3 = param_2;\n                }" (if "if") (parenthesized_expression "((int)param_2 < 0x101)" (( "(") (binary_expression "(int)param_2 < 0x101" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "0x101")) () ")")) (compound_statement "{\n                  pbVar3 = param_2;\n                }" ({ "{") (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" (identifier "pbVar3") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" (( "(") (pointer_expression "*(code *)PTR_hex2stderr_0005789c" (* "*") (cast_expression "(code *)PTR_hex2stderr_0005789c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stderr_0005789c"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" (identifier "param_2") (= "=") (identifier "pbVar3")) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" (else "else") (compound_statement "{\n                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);\n                param_3 = (byte *)0x0;\n                (*(code *)PTR_hex2stderr_0005789c)(param_4);\n                iVar16 = 0;\n              }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x2e44)" (( "(") (binary_expression "PTR_s__00057840 + 0x2e44" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x2e44")) () ")"))) (; ";")) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" (identifier "param_3") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_hex2stderr_0005789c)(param_4);" (call_expression "(*(code *)PTR_hex2stderr_0005789c)(param_4)" (parenthesized_expression "(*(code *)PTR_hex2stderr_0005789c)" (( "(") (pointer_expression "*(code *)PTR_hex2stderr_0005789c" (* "*") (cast_expression "(code *)PTR_hex2stderr_0005789c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_hex2stderr_0005789c"))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}")))))))) (expression_statement "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);" (call_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0)" (parenthesized_expression "(*(code *)PTR_destruct_scsi_pt_obj_0005796c)" (( "(") (pointer_expression "*(code *)PTR_destruct_scsi_pt_obj_0005796c" (* "*") (cast_expression "(code *)PTR_destruct_scsi_pt_obj_0005796c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_destruct_scsi_pt_obj_0005796c"))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "pbVar3 = param_5;" (assignment_expression "pbVar3 = param_5" (identifier "pbVar3") (= "=") (identifier "param_5")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" (else "else") (compound_statement "{\n        pbVar4 = param_3;\n        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);\n        iVar16 = -1;\n        param_2 = param_3;\n        param_3 = pbVar4;\n      }" ({ "{") (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" (identifier "pbVar4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x23c8)" (( "(") (binary_expression "PTR_s__00057840 + 0x23c8" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23c8")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" (identifier "param_3") (= "=") (identifier "pbVar4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" (else "else") (compound_statement "{\n      pbVar4 = param_3;\n      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);\n      iVar16 = -1;\n      param_2 = param_3;\n      param_3 = pbVar4;\n    }" ({ "{") (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" (identifier "pbVar4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x23a4)" (( "(") (binary_expression "PTR_s__00057840 + 0x23a4" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x23a4")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = pbVar4;" (assignment_expression "param_3 = pbVar4" (identifier "param_3") (= "=") (identifier "pbVar4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);\n    iVar16 = -1;\n    pbVar3 = param_4;\n  }" ({ "{") (expression_statement "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);" (call_expression "(*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390)" (parenthesized_expression "(*(code *)PTR_pr2ws_000578ec)" (( "(") (pointer_expression "*(code *)PTR_pr2ws_000578ec" (* "*") (cast_expression "(code *)PTR_pr2ws_000578ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_pr2ws_000578ec"))) () ")")) (argument_list "(PTR_s__00057840 + 0x2390)" (( "(") (binary_expression "PTR_s__00057840 + 0x2390" (identifier "PTR_s__00057840") (+ "+") (number_literal "0x2390")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pbVar3 = param_4;" (assignment_expression "pbVar3 = param_4" (identifier "pbVar3") (= "=") (identifier "param_4")) (; ";")) (} "}")))) (if_statement "if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {\n    return iVar16;\n  }" (if "if") (parenthesized_expression "(local_24 == *(byte **)PTR___stack_chk_guard_00057a50)" (( "(") (binary_expression "local_24 == *(byte **)PTR___stack_chk_guard_00057a50" (identifier "local_24") (== "==") (pointer_expression "*(byte **)PTR___stack_chk_guard_00057a50" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_00057a50" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_00057a50")))) () ")")) (compound_statement "{\n    return iVar16;\n  }" ({ "{") (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (expression_statement "pcVar18 = sg_ll_get_performance;" (assignment_expression "pcVar18 = sg_ll_get_performance" (identifier "pcVar18") (= "=") (identifier "sg_ll_get_performance")) (; ";")) (expression_statement "pbVar9 = local_24;" (assignment_expression "pbVar9 = local_24" (identifier "pbVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar12 = PTR___stack_chk_fail_00057a1c;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00057a1c" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_fail_00057a1c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00057a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00057a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00057a1c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00057a1c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00057a1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00057a1c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar8 = local_8c;" (assignment_expression "puVar8 = local_8c" (identifier "puVar8") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "pbVar4 = local_90;" (assignment_expression "pbVar4 = local_90" (identifier "pbVar4") (= "=") (identifier "local_90")) (; ";")) (expression_statement "puStack_120 = puVar12 + 0x31938;" (assignment_expression "puStack_120 = puVar12 + 0x31938" (identifier "puStack_120") (= "=") (binary_expression "puVar12 + 0x31938" (identifier "puVar12") (+ "+") (number_literal "0x31938"))) (; ";")) (expression_statement "pcStack_a4 = pcVar18;" (assignment_expression "pcStack_a4 = pcVar18" (identifier "pcStack_a4") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "pbStack_a8 = unaff_s5;" (assignment_expression "pbStack_a8 = unaff_s5" (identifier "pbStack_a8") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pbStack_ac = unaff_s4;" (assignment_expression "pbStack_ac = unaff_s4" (identifier "pbStack_ac") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pbStack_b0 = param_7;" (assignment_expression "pbStack_b0 = param_7" (identifier "pbStack_b0") (= "=") (identifier "param_7")) (; ";")) (expression_statement "pbStack_b4 = unaff_s2;" (assignment_expression "pbStack_b4 = unaff_s2" (identifier "pbStack_b4") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "iStack_b8 = iVar16;" (assignment_expression "iStack_b8 = iVar16" (identifier "iStack_b8") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "iStack_bc = unaff_s0;" (assignment_expression "iStack_bc = unaff_s0" (identifier "iStack_bc") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "iStack_c4 = **(int **)(puVar12 + 0x29b78);" (assignment_expression "iStack_c4 = **(int **)(puVar12 + 0x29b78)" (identifier "iStack_c4") (= "=") (pointer_expression "**(int **)(puVar12 + 0x29b78)" (* "*") (pointer_expression "*(int **)(puVar12 + 0x29b78)" (* "*") (cast_expression "(int **)(puVar12 + 0x29b78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x29b78)" (( "(") (binary_expression "puVar12 + 0x29b78" (identifier "puVar12") (+ "+") (number_literal "0x29b78")) () ")")))))) (; ";")) (expression_statement "abStack_110[0] = 0xac;" (assignment_expression "abStack_110[0] = 0xac" (subscript_expression "abStack_110[0]" (identifier "abStack_110") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xac")) (; ";")) (expression_statement "abStack_110[1] = 0;" (assignment_expression "abStack_110[1] = 0" (subscript_expression "abStack_110[1]" (identifier "abStack_110") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_10e[0] = 0;" (assignment_expression "auStack_10e[0] = 0" (subscript_expression "auStack_10e[0]" (identifier "auStack_10e") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_10e[1] = 0;" (assignment_expression "auStack_10e[1] = 0" (subscript_expression "auStack_10e[1]" (identifier "auStack_10e") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_10e[2] = 0;" (assignment_expression "auStack_10e[2] = 0" (subscript_expression "auStack_10e[2]" (identifier "auStack_10e") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auStack_10e[3] = 0;" (assignment_expression "auStack_10e[3] = 0" (subscript_expression "auStack_10e[3]" (identifier "auStack_10e") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_10a = 0;" (assignment_expression "uStack_10a = 0" (identifier "uStack_10a") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_109 = 0;" (assignment_expression "uStack_109 = 0" (identifier "uStack_109") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" (identifier "uStack_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_106 = 0;" (assignment_expression "uStack_106 = 0" (identifier "uStack_106") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_105 = 0;" (assignment_expression "uStack_105 = 0" (identifier "uStack_105") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 < (byte *)0x20) {\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" (if "if") (parenthesized_expression "(param_2 < (byte *)0x20)" (( "(") (binary_expression "param_2 < (byte *)0x20" (identifier "param_2") (< "<") (cast_expression "(byte *)0x20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) () ")")) (compound_statement "{\n    abStack_110[1] = (char)param_2;\n    pbVar1 = abStack_110 + 2;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;\n    pbVar1 = abStack_110 + 5;\n    uVar2 = (uint)pbVar1 & 3;\n    *(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;\n    param_7 = pbVar9;\n    pbStack_114 = param_3;\n    if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }\n  }" ({ "{") (expression_statement "abStack_110[1] = (char)param_2;" (assignment_expression "abStack_110[1] = (char)param_2" (subscript_expression "abStack_110[1]" (identifier "abStack_110") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "pbVar1 = abStack_110 + 2;" (assignment_expression "pbVar1 = abStack_110 + 2" (identifier "pbVar1") (= "=") (binary_expression "abStack_110 + 2" (identifier "abStack_110") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" (identifier "uVar2") (= "=") (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(pbVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + -uVar2)" (( "(") (binary_expression "pbVar1 + -uVar2" (identifier "pbVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (= "=") (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(pbVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + -uVar2)" (( "(") (binary_expression "pbVar1 + -uVar2" (identifier "pbVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (& "&") (binary_expression "-1 << (4 - uVar2) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" (( "(") (binary_expression "4 - uVar2" (number_literal "4") (- "-") (identifier "uVar2")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "(uint)param_3 >> uVar2 * 8" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (>> ">>") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "pbVar1 = abStack_110 + 5;" (assignment_expression "pbVar1 = abStack_110 + 5" (identifier "pbVar1") (= "=") (binary_expression "abStack_110 + 5" (identifier "abStack_110") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = (uint)pbVar1 & 3;" (assignment_expression "uVar2 = (uint)pbVar1 & 3" (identifier "uVar2") (= "=") (binary_expression "(uint)pbVar1 & 3" (cast_expression "(uint)pbVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar1")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8;" (assignment_expression "*(uint *)(pbVar1 + -uVar2) =\n         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(pbVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + -uVar2)" (( "(") (binary_expression "pbVar1 + -uVar2" (identifier "pbVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (= "=") (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |\n         (int)param_3 << (3 - uVar2) * 8" (binary_expression "*(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8" (pointer_expression "*(uint *)(pbVar1 + -uVar2)" (* "*") (cast_expression "(uint *)(pbVar1 + -uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + -uVar2)" (( "(") (binary_expression "pbVar1 + -uVar2" (identifier "pbVar1") (+ "+") (unary_expression "-uVar2" (- "-") (identifier "uVar2"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar2 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" (( "(") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "(int)param_3 << (3 - uVar2) * 8" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<< "<<") (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" (( "(") (binary_expression "3 - uVar2" (number_literal "3") (- "-") (identifier "uVar2")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" (identifier "param_7") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbStack_114 = param_3;" (assignment_expression "pbStack_114 = param_3" (identifier "pbStack_114") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (pbVar3 < (byte *)0x10000) {\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }\n    else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" (if "if") (parenthesized_expression "(pbVar3 < (byte *)0x10000)" (( "(") (binary_expression "pbVar3 < (byte *)0x10000" (identifier "pbVar3") (< "<") (cast_expression "(byte *)0x10000" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10000"))) () ")")) (compound_statement "{\n      uStack_108 = SUB42(pbVar3,0);\n      if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }\n    }" ({ "{") (expression_statement "uStack_108 = SUB42(pbVar3,0);" (assignment_expression "uStack_108 = SUB42(pbVar3,0)" (identifier "uStack_108") (= "=") (call_expression "SUB42(pbVar3,0)" (identifier "SUB42") (argument_list "(pbVar3,0)" (( "(") (identifier "pbVar3") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (pbVar4 < (byte *)0x100) {\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }\n      else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" (if "if") (parenthesized_expression "(pbVar4 < (byte *)0x100)" (( "(") (binary_expression "pbVar4 < (byte *)0x100" (identifier "pbVar4") (< "<") (cast_expression "(byte *)0x100" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100"))) () ")")) (compound_statement "{\n        uStack_106 = SUB41(pbVar4,0);\n        (**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);\n        pbVar4 = abStack_110;\n        unaff_s5 = abStack_104;\n        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);\n        do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);\n        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);\n        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n        if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }\n      }" ({ "{") (expression_statement "uStack_106 = SUB41(pbVar4,0);" (assignment_expression "uStack_106 = SUB41(pbVar4,0)" (identifier "uStack_106") (= "=") (call_expression "SUB41(pbVar4,0)" (identifier "SUB41") (argument_list "(pbVar4,0)" (( "(") (identifier "pbVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);" (call_expression "(**(code **)(puVar12 + 0x29a14))\n                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x29a14)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x29a14)" (* "*") (cast_expression "(code **)(puVar12 + 0x29a14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x29a14)" (( "(") (binary_expression "puVar12 + 0x29a14" (identifier "puVar12") (+ "+") (number_literal "0x29a14")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c)" (( "(") (binary_expression "*(int *)(puVar12 + 0x29968) + 0x17c0" (pointer_expression "*(int *)(puVar12 + 0x29968)" (* "*") (cast_expression "(int *)(puVar12 + 0x29968)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x29968)" (( "(") (binary_expression "puVar12 + 0x29968" (identifier "puVar12") (+ "+") (number_literal "0x29968")) () ")")))) (+ "+") (number_literal "0x17c0")) (, ",") (binary_expression "*(int *)(puVar12 + 0x29968) + 0x244c" (pointer_expression "*(int *)(puVar12 + 0x29968)" (* "*") (cast_expression "(int *)(puVar12 + 0x29968)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x29968)" (( "(") (binary_expression "puVar12 + 0x29968" (identifier "puVar12") (+ "+") (number_literal "0x29968")) () ")")))) (+ "+") (number_literal "0x244c")) () ")"))) (; ";")) (expression_statement "pbVar4 = abStack_110;" (assignment_expression "pbVar4 = abStack_110" (identifier "pbVar4") (= "=") (identifier "abStack_110")) (; ";")) (expression_statement "unaff_s5 = abStack_104;" (assignment_expression "unaff_s5 = abStack_104" (identifier "unaff_s5") (= "=") (identifier "abStack_104")) (; ";")) (expression_statement "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);" (assignment_expression "unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" (identifier "unaff_s4") (= "=") (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd4) + 0x511c)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd4) + 0x511c" (pointer_expression "*(int *)(puStack_120 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd4)" (( "(") (binary_expression "puStack_120 + -0x7fd4" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x511c")) () ")")))) (; ";")) (do_statement "do {\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        } while (pbVar4 != unaff_s5);" (do "do") (compound_statement "{\n          param_2 = (byte *)(uint)*pbVar4;\n          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);\n          pbVar4 = pbVar4 + 1;\n        }" ({ "{") (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" (identifier "param_2") (= "=") (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(unaff_s4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f24)" (( "(") (binary_expression "puStack_120 + -0x7f24" (identifier "puStack_120") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar4 != unaff_s5)" (( "(") (binary_expression "pbVar4 != unaff_s5" (identifier "pbVar4") (!= "!=") (identifier "unaff_s5")) () ")")) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f24)" (( "(") (binary_expression "puStack_120 + -0x7f24" (identifier "puStack_120") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x29c4)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x29c4")) () ")"))) (; ";")) (expression_statement "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (identifier "unaff_s0") (= "=") (call_expression "FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (identifier "FUN_0002d790") (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x244c")) () ")")))) (; ";")) (if_statement "if (unaff_s0 == 0) {\n          iVar16 = -1;\n        }\n        else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" (if "if") (parenthesized_expression "(unaff_s0 == 0)" (( "(") (binary_expression "unaff_s0 == 0" (identifier "unaff_s0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar16 = -1;\n        }" ({ "{") (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" (else "else") (compound_statement "{\n          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);\n          unaff_s4 = abStack_104;\n          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);\n          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);\n          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);\n          piStack_124 = &iStack_118;\n          puStack_128 = &_gp_1;\n          uStack_12c = (uint)local_84 & 0xff;\n          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);\n          pbVar3 = local_88;\n          pbStack_130 = unaff_s4;\n          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);\n          if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }\n          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);\n          param_7 = pbVar9;\n        }" ({ "{") (expression_statement "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);" (call_expression "(**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7fb0))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7fb0)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7fb0)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7fb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7fb0)" (( "(") (binary_expression "puStack_120 + -0x7fb0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fb0")) () ")"))))) () ")")) (argument_list "(unaff_s0,abStack_110,0xc)" (( "(") (identifier "unaff_s0") (, ",") (identifier "abStack_110") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "unaff_s4 = abStack_104;" (assignment_expression "unaff_s4 = abStack_104" (identifier "unaff_s4") (= "=") (identifier "abStack_104")) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);" (call_expression "(**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f1c))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f1c)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f1c)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f1c)" (( "(") (binary_expression "puStack_120 + -0x7f1c" (identifier "puStack_120") (+ "+") (number_literal "-0x7f1c")) () ")"))))) () ")")) (argument_list "(unaff_s0,unaff_s4,0x40)" (( "(") (identifier "unaff_s0") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);" (call_expression "(**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d8c))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7d8c)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7d8c)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7d8c)" (( "(") (binary_expression "puStack_120 + -0x7d8c" (identifier "puStack_120") (+ "+") (number_literal "-0x7d8c")) () ")"))))) () ")")) (argument_list "(unaff_s0,puVar8,local_88)" (( "(") (identifier "unaff_s0") (, ",") (identifier "puVar8") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);" (assignment_expression "param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" (identifier "param_3") (= "=") (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7e8c))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7e8c)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7e8c)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7e8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7e8c)" (( "(") (binary_expression "puStack_120 + -0x7e8c" (identifier "puStack_120") (+ "+") (number_literal "-0x7e8c")) () ")"))))) () ")")) (argument_list "(unaff_s0,pbVar9,0x3c,&_gp_1)" (( "(") (identifier "unaff_s0") (, ",") (identifier "pbVar9") (, ",") (number_literal "0x3c") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")"))))) (; ";")) (expression_statement "piStack_124 = &iStack_118;" (assignment_expression "piStack_124 = &iStack_118" (identifier "piStack_124") (= "=") (pointer_expression "&iStack_118" (& "&") (identifier "iStack_118"))) (; ";")) (expression_statement "puStack_128 = &_gp_1;" (assignment_expression "puStack_128 = &_gp_1" (identifier "puStack_128") (= "=") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1"))) (; ";")) (expression_statement "uStack_12c = (uint)local_84 & 0xff;" (assignment_expression "uStack_12c = (uint)local_84 & 0xff" (identifier "uStack_12c") (= "=") (binary_expression "(uint)local_84 & 0xff" (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);" (assignment_expression "param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (identifier "param_2") (= "=") (cast_expression "(byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x244c)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x244c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x244c")) () ")")))) (; ";")) (expression_statement "pbVar3 = local_88;" (assignment_expression "pbVar3 = local_88" (identifier "pbVar3") (= "=") (identifier "local_88")) (; ";")) (expression_statement "pbStack_130 = unaff_s4;" (assignment_expression "pbStack_130 = unaff_s4" (identifier "pbStack_130") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_120 + -0x7f40))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f40))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f40)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f40)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f40)" (( "(") (binary_expression "puStack_120 + -0x7f40" (identifier "puStack_120") (+ "+") (number_literal "-0x7f40")) () ")"))))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")"))))) (; ";")) (if_statement "if (pbVar4 == (byte *)0xffffffff) {\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }\n          else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0xffffffff)" (( "(") (binary_expression "pbVar4 == (byte *)0xffffffff" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);\n            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);\n          }" ({ "{") (expression_statement "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);" (assignment_expression "uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puStack_120 + -0x7d70))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7d70))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7d70)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7d70)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7d70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7d70)" (( "(") (binary_expression "puStack_120 + -0x7d70" (identifier "puStack_120") (+ "+") (number_literal "-0x7d70")) () ")"))))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")")))) (; ";")) (expression_statement "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);" (assignment_expression "iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(puStack_120 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7ee8)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7ee8)" (( "(") (binary_expression "puStack_120 + -0x7ee8" (identifier "puStack_120") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")")))) (; ";")) (} "}")) (else_clause "else if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" (else "else") (if_statement "if (pbVar4 == (byte *)0xfffffffe) {\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }\n          else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0xfffffffe)" (( "(") (binary_expression "pbVar4 == (byte *)0xfffffffe" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0xfffffffe" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfffffffe"))) () ")")) (compound_statement "{\n            if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }\n            iVar16 = -1;\n          }" ({ "{") (if_statement "if (iStack_118 - 5U < 0x11) {\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" (if "if") (parenthesized_expression "(iStack_118 - 5U < 0x11)" (( "(") (binary_expression "iStack_118 - 5U < 0x11" (binary_expression "iStack_118 - 5U" (identifier "iStack_118") (- "-") (number_literal "5U")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n                    \n                    \n              iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();\n              return iVar16;\n            }" ({ "{") (expression_statement "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))();" (assignment_expression "iVar16 = (*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" (identifier "iVar16") (= "=") (call_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))()" (parenthesized_expression "(*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)))" (( "(") (pointer_expression "*(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" (* "*") (cast_expression "(code *)(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4))" (( "(") (binary_expression "puStack_120 +\n                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" (identifier "puStack_120") (+ "+") (pointer_expression "*(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c +\n                                         (iStack_118 - 5U) * 4" (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x250c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x250c")) (+ "+") (binary_expression "(iStack_118 - 5U) * 4" (parenthesized_expression "(iStack_118 - 5U)" (( "(") (binary_expression "iStack_118 - 5U" (identifier "iStack_118") (- "-") (number_literal "5U")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" (else "else") (compound_statement "{\n            param_2 = *(byte **)(puStack_120 + -0x7fd0);\n            if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }\n          }" ({ "{") (expression_statement "param_2 = *(byte **)(puStack_120 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(puStack_120 + -0x7fd0)" (identifier "param_2") (= "=") (pointer_expression "*(byte **)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(byte **)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (if_statement "if ((int)pbVar4 < 4) {\n              iVar16 = 0;\n            }\n            else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" (if "if") (parenthesized_expression "((int)pbVar4 < 4)" (( "(") (binary_expression "(int)pbVar4 < 4" (cast_expression "(int)pbVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar4")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n              iVar16 = 0;\n            }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" (else "else") (compound_statement "{\n              pbStack_114 = (byte *)*puVar8;\n              pbVar9 = pbStack_114;\n              if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }\n              if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }\n              (**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);\n              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);\n              param_3 = (byte *)0x0;\n              param_2 = pbVar9;\n              (**(code **)(puStack_120 + -0x7f74))(puVar8);\n              iVar16 = 0;\n            }" ({ "{") (expression_statement "pbStack_114 = (byte *)*puVar8;" (assignment_expression "pbStack_114 = (byte *)*puVar8" (identifier "pbStack_114") (= "=") (cast_expression "(byte *)*puVar8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "pbVar9 = pbStack_114;" (assignment_expression "pbVar9 = pbStack_114" (identifier "pbVar9") (= "=") (identifier "pbStack_114")) (; ";")) (if_statement "if ((int)pbStack_114 < 0) {\n                pbVar9 = (byte *)0x0;\n              }" (if "if") (parenthesized_expression "((int)pbStack_114 < 0)" (( "(") (binary_expression "(int)pbStack_114 < 0" (cast_expression "(int)pbStack_114" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbStack_114")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar9 = (byte *)0x0;\n              }" ({ "{") (expression_statement "pbVar9 = (byte *)0x0;" (assignment_expression "pbVar9 = (byte *)0x0" (identifier "pbVar9") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if ((int)pbVar4 <= (int)pbVar9) {\n                pbVar9 = pbVar4;\n              }" (if "if") (parenthesized_expression "((int)pbVar4 <= (int)pbVar9)" (( "(") (binary_expression "(int)pbVar4 <= (int)pbVar9" (cast_expression "(int)pbVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar4")) (<= "<=") (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9"))) () ")")) (compound_statement "{\n                pbVar9 = pbVar4;\n              }" ({ "{") (expression_statement "pbVar9 = pbVar4;" (assignment_expression "pbVar9 = pbVar4" (identifier "pbVar9") (= "=") (identifier "pbVar4")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);" (call_expression "(**(code **)(puStack_120 + -0x7f24))\n                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f24)" (( "(") (binary_expression "puStack_120 + -0x7f24" (identifier "puStack_120") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x1b3c" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x1b3c")) (, ",") (binary_expression "param_2 + 0x244c" (identifier "param_2") (+ "+") (number_literal "0x244c")) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);" (call_expression "(**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f24))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f24)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f24)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f24)" (( "(") (binary_expression "puStack_120 + -0x7f24" (identifier "puStack_120") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(puStack_120 + -0x7fd0) + 0x2e44)" (( "(") (binary_expression "*(int *)(puStack_120 + -0x7fd0) + 0x2e44" (pointer_expression "*(int *)(puStack_120 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_120 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_120 + -0x7fd0)" (( "(") (binary_expression "puStack_120 + -0x7fd0" (identifier "puStack_120") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x2e44")) () ")"))) (; ";")) (expression_statement "param_3 = (byte *)0x0;" (assignment_expression "param_3 = (byte *)0x0" (identifier "param_3") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_2 = pbVar9;" (assignment_expression "param_2 = pbVar9" (identifier "param_2") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "(**(code **)(puStack_120 + -0x7f74))(puVar8);" (call_expression "(**(code **)(puStack_120 + -0x7f74))(puVar8)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7f74))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7f74)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7f74)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7f74)" (( "(") (binary_expression "puStack_120 + -0x7f74" (identifier "puStack_120") (+ "+") (number_literal "-0x7f74")) () ")"))))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))))) (expression_statement "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0);" (call_expression "(**(code **)(puStack_120 + -0x7ea4))(unaff_s0)" (parenthesized_expression "(**(code **)(puStack_120 + -0x7ea4))" (( "(") (pointer_expression "**(code **)(puStack_120 + -0x7ea4)" (* "*") (pointer_expression "*(code **)(puStack_120 + -0x7ea4)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7ea4)" (( "(") (binary_expression "puStack_120 + -0x7ea4" (identifier "puStack_120") (+ "+") (number_literal "-0x7ea4")) () ")"))))) () ")")) (argument_list "(unaff_s0)" (( "(") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "param_7 = pbVar9;" (assignment_expression "param_7 = pbVar9" (identifier "param_7") (= "=") (identifier "pbVar9")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" (else "else") (compound_statement "{\n        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);\n        iVar16 = -1;\n        param_2 = pbVar4;\n      }" ({ "{") (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x29a14)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x29a14)" (* "*") (cast_expression "(code **)(puVar12 + 0x29a14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x29a14)" (( "(") (binary_expression "puVar12 + 0x29a14" (identifier "puVar12") (+ "+") (number_literal "0x29a14")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x243c)" (( "(") (binary_expression "*(int *)(puVar12 + 0x29968) + 0x243c" (pointer_expression "*(int *)(puVar12 + 0x29968)" (* "*") (cast_expression "(int *)(puVar12 + 0x29968)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x29968)" (( "(") (binary_expression "puVar12 + 0x29968" (identifier "puVar12") (+ "+") (number_literal "0x29968")) () ")")))) (+ "+") (number_literal "0x243c")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_2 = pbVar4;" (assignment_expression "param_2 = pbVar4" (identifier "param_2") (= "=") (identifier "pbVar4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" (else "else") (compound_statement "{\n      pbVar4 = pbVar3;\n      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);\n      iVar16 = -1;\n      param_2 = pbVar3;\n      pbVar3 = pbVar4;\n    }" ({ "{") (expression_statement "pbVar4 = pbVar3;" (assignment_expression "pbVar4 = pbVar3" (identifier "pbVar4") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x29a14)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x29a14)" (* "*") (cast_expression "(code **)(puVar12 + 0x29a14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x29a14)" (( "(") (binary_expression "puVar12 + 0x29a14" (identifier "puVar12") (+ "+") (number_literal "0x29a14")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2424)" (( "(") (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2424" (pointer_expression "*(int *)(puVar12 + 0x29968)" (* "*") (cast_expression "(int *)(puVar12 + 0x29968)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x29968)" (( "(") (binary_expression "puVar12 + 0x29968" (identifier "puVar12") (+ "+") (number_literal "0x29968")) () ")")))) (+ "+") (number_literal "0x2424")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" (identifier "param_2") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar3 = pbVar4;" (assignment_expression "pbVar3 = pbVar4" (identifier "pbVar3") (= "=") (identifier "pbVar4")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);\n    iVar16 = -1;\n  }" ({ "{") (expression_statement "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);" (call_expression "(**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408)" (parenthesized_expression "(**(code **)(puVar12 + 0x29a14))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x29a14)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x29a14)" (* "*") (cast_expression "(code **)(puVar12 + 0x29a14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x29a14)" (( "(") (binary_expression "puVar12 + 0x29a14" (identifier "puVar12") (+ "+") (number_literal "0x29a14")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar12 + 0x29968) + 0x2408)" (( "(") (binary_expression "*(int *)(puVar12 + 0x29968) + 0x2408" (pointer_expression "*(int *)(puVar12 + 0x29968)" (* "*") (cast_expression "(int *)(puVar12 + 0x29968)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x29968)" (( "(") (binary_expression "puVar12 + 0x29968" (identifier "puVar12") (+ "+") (number_literal "0x29968")) () ")")))) (+ "+") (number_literal "0x2408")) () ")"))) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (if_statement "if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {\n    return iVar16;\n  }" (if "if") (parenthesized_expression "(iStack_c4 == **(int **)(puStack_120 + -0x7dc0))" (( "(") (binary_expression "iStack_c4 == **(int **)(puStack_120 + -0x7dc0)" (identifier "iStack_c4") (== "==") (pointer_expression "**(int **)(puStack_120 + -0x7dc0)" (* "*") (pointer_expression "*(int **)(puStack_120 + -0x7dc0)" (* "*") (cast_expression "(int **)(puStack_120 + -0x7dc0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7dc0)" (( "(") (binary_expression "puStack_120 + -0x7dc0" (identifier "puStack_120") (+ "+") (number_literal "-0x7dc0")) () ")")))))) () ")")) (compound_statement "{\n    return iVar16;\n  }" ({ "{") (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(puStack_120 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(puStack_120 + -0x7df4)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(puStack_120 + -0x7df4)" (* "*") (cast_expression "(code **)(puStack_120 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_120 + -0x7df4)" (( "(") (binary_expression "puStack_120 + -0x7df4" (identifier "puStack_120") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "pcVar19 = sg_ll_set_streaming;" (assignment_expression "pcVar19 = sg_ll_set_streaming" (identifier "pcVar19") (= "=") (identifier "sg_ll_set_streaming")) (; ";")) (expression_statement "iVar17 = iStack_c4;" (assignment_expression "iVar17 = iStack_c4" (identifier "iVar17") (= "=") (identifier "iStack_c4")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = uStack_12c;" (assignment_expression "uVar2 = uStack_12c" (identifier "uVar2") (= "=") (identifier "uStack_12c")) (; ";")) (expression_statement "pcStack_1c0 = pcVar18 + 0x314e8;" (assignment_expression "pcStack_1c0 = pcVar18 + 0x314e8" (identifier "pcStack_1c0") (= "=") (binary_expression "pcVar18 + 0x314e8" (identifier "pcVar18") (+ "+") (number_literal "0x314e8"))) (; ";")) (expression_statement "puStack_158 = puVar8;" (assignment_expression "puStack_158 = puVar8" (identifier "puStack_158") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);" (assignment_expression "puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" (identifier "puStack_164") (= "=") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29728)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x29728)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x29728)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x29728)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x29728)" (( "(") (binary_expression "pcVar18 + 0x29728" (identifier "pcVar18") (+ "+") (number_literal "0x29728")) () ")"))))))) (; ";")) (expression_statement "abStack_1b0[0] = 0xb6;" (assignment_expression "abStack_1b0[0] = 0xb6" (subscript_expression "abStack_1b0[0]" (identifier "abStack_1b0") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xb6")) (; ";")) (expression_statement "abStack_1b0[1] = 0;" (assignment_expression "abStack_1b0[1] = 0" (subscript_expression "abStack_1b0[1]" (identifier "abStack_1b0") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[2] = 0;" (assignment_expression "abStack_1b0[2] = 0" (subscript_expression "abStack_1b0[2]" (identifier "abStack_1b0") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[3] = 0;" (assignment_expression "abStack_1b0[3] = 0" (subscript_expression "abStack_1b0[3]" (identifier "abStack_1b0") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[4] = 0;" (assignment_expression "abStack_1b0[4] = 0" (subscript_expression "abStack_1b0[4]" (identifier "abStack_1b0") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[5] = 0;" (assignment_expression "abStack_1b0[5] = 0" (subscript_expression "abStack_1b0[5]" (identifier "abStack_1b0") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[6] = 0;" (assignment_expression "abStack_1b0[6] = 0" (subscript_expression "abStack_1b0[6]" (identifier "abStack_1b0") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[7] = 0;" (assignment_expression "abStack_1b0[7] = 0" (subscript_expression "abStack_1b0[7]" (identifier "abStack_1b0") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[0xb] = 0;" (assignment_expression "abStack_1b0[0xb] = 0" (subscript_expression "abStack_1b0[0xb]" (identifier "abStack_1b0") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "abStack_1b0[8] = (byte)param_2;" (assignment_expression "abStack_1b0[8] = (byte)param_2" (subscript_expression "abStack_1b0[8]" (identifier "abStack_1b0") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(byte)param_2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);" (assignment_expression "uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_)" (identifier "uStack_1b4") (= "=") (call_expression "CONCAT22((short)pbVar3,uStack_1b4._2_2_)" (identifier "CONCAT22") (argument_list "((short)pbVar3,uStack_1b4._2_2_)" (( "(") (cast_expression "(short)pbVar3" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "pbVar3")) (, ",") (field_expression "uStack_1b4._2_2_" (identifier "uStack_1b4") (. ".") (field_identifier "_2_2_")) () ")")))) (; ";")) (expression_statement "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);" (assignment_expression "abStack_1b0[9] = (byte)((uint)pbVar3 >> 8)" (subscript_expression "abStack_1b0[9]" (identifier "abStack_1b0") ([ "[") (number_literal "9") (] "]")) (= "=") (call_expression "(byte)((uint)pbVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)pbVar3 >> 8)" (( "(") (binary_expression "(uint)pbVar3 >> 8" (cast_expression "(uint)pbVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "abStack_1b0[10] = (byte)pbVar3;" (assignment_expression "abStack_1b0[10] = (byte)pbVar3" (subscript_expression "abStack_1b0[10]" (identifier "abStack_1b0") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(byte)pbVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pbVar3"))) (; ";")) (expression_statement "iStack_160 = unaff_s0;" (assignment_expression "iStack_160 = unaff_s0" (identifier "iStack_160") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "iStack_15c = iVar16;" (assignment_expression "iStack_15c = iVar16" (identifier "iStack_15c") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "pbStack_154 = param_7;" (assignment_expression "pbStack_154 = param_7" (identifier "pbStack_154") (= "=") (identifier "param_7")) (; ";")) (expression_statement "pbStack_150 = unaff_s4;" (assignment_expression "pbStack_150 = unaff_s4" (identifier "pbStack_150") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pbStack_14c = unaff_s5;" (assignment_expression "pbStack_14c = unaff_s5" (identifier "pbStack_14c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pbStack_148 = unaff_s6;" (assignment_expression "pbStack_148 = unaff_s6" (identifier "pbStack_148") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_144 = pcVar19;" (assignment_expression "pcStack_144 = pcVar19" (identifier "pcStack_144") (= "=") (identifier "pcVar19")) (; ";")) (if_statement "if (uStack_12c != 0) {\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" (if "if") (parenthesized_expression "(uStack_12c != 0)" (( "(") (binary_expression "uStack_12c != 0" (identifier "uStack_12c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);\n    pbVar4 = abStack_1b0;\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);\n    do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);\n    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);\n    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;\n    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);\n    if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);" (call_expression "(**(code **)(pcVar18 + 0x295c4))\n              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" (parenthesized_expression "(**(code **)(pcVar18 + 0x295c4))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x295c4)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x295c4)" (* "*") (cast_expression "(code **)(pcVar18 + 0x295c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x295c4)" (( "(") (binary_expression "pcVar18 + 0x295c4" (identifier "pcVar18") (+ "+") (number_literal "0x295c4")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c)" (( "(") (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x17c0" (pointer_expression "*(int *)(pcVar18 + 0x29518)" (* "*") (cast_expression "(int *)(pcVar18 + 0x29518)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x29518)" (( "(") (binary_expression "pcVar18 + 0x29518" (identifier "pcVar18") (+ "+") (number_literal "0x29518")) () ")")))) (+ "+") (number_literal "0x17c0")) (, ",") (binary_expression "*(int *)(pcVar18 + 0x29518) + 0x245c" (pointer_expression "*(int *)(pcVar18 + 0x29518)" (* "*") (cast_expression "(int *)(pcVar18 + 0x29518)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x29518)" (( "(") (binary_expression "pcVar18 + 0x29518" (identifier "pcVar18") (+ "+") (number_literal "0x29518")) () ")")))) (+ "+") (number_literal "0x245c")) () ")"))) (; ";")) (expression_statement "pbVar4 = abStack_1b0;" (assignment_expression "pbVar4 = abStack_1b0" (identifier "pbVar4") (= "=") (identifier "abStack_1b0")) (; ";")) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd4)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd4)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd4" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (do_statement "do {\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    } while (pbVar4 != abStack_1b0 + 0xc);" (do "do") (compound_statement "{\n      param_2 = (byte *)(uint)*pbVar4;\n      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);\n      pbVar4 = pbVar4 + 1;\n    }" ({ "{") (expression_statement "param_2 = (byte *)(uint)*pbVar4;" (assignment_expression "param_2 = (byte *)(uint)*pbVar4" (identifier "param_2") (= "=") (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f24)" (( "(") (binary_expression "pcStack_1c0 + -0x7f24" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(iVar16 + 0x511c)" (( "(") (binary_expression "iVar16 + 0x511c" (identifier "iVar16") (+ "+") (number_literal "0x511c")) () ")"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar4 != abStack_1b0 + 0xc)" (( "(") (binary_expression "pbVar4 != abStack_1b0 + 0xc" (identifier "pbVar4") (!= "!=") (binary_expression "abStack_1b0 + 0xc" (identifier "abStack_1b0") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f24)" (( "(") (binary_expression "pcStack_1c0 + -0x7f24" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4)" (( "(") (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x29c4")) () ")"))) (; ";")) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (if_statement "if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;" (if "if") (parenthesized_expression "(((int)uVar2 < 2) || (param_3 == (byte *)0x0))" (( "(") (binary_expression "((int)uVar2 < 2) || (param_3 == (byte *)0x0)" (parenthesized_expression "((int)uVar2 < 2)" (( "(") (binary_expression "(int)uVar2 < 2" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(param_3 == (byte *)0x0)" (( "(") (binary_expression "param_3 == (byte *)0x0" (identifier "param_3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_0002e3c0;" (goto "goto") (statement_identifier "LAB_0002e3c0") (; ";"))) (expression_statement "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);" (assignment_expression "param_2 = *(byte **)(pcStack_1c0 + -0x7fd0)" (identifier "param_2") (= "=") (pointer_expression "*(byte **)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(byte **)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (if_statement "if (pbVar3 != (byte *)0x0) {\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" (if "if") (parenthesized_expression "(pbVar3 != (byte *)0x0)" (( "(") (binary_expression "pbVar3 != (byte *)0x0" (identifier "pbVar3") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);\n      param_2 = pbVar3;\n      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);\n      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);\n      goto LAB_0002e3c0;\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f24))\n                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f24))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f24)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f24)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f24)" (( "(") (binary_expression "pcStack_1c0 + -0x7f24" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f24")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c)" (( "(") (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x1e44")) (, ",") (binary_expression "param_2 + 0x245c" (identifier "param_2") (+ "+") (number_literal "0x245c")) () ")"))) (; ";")) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" (identifier "param_2") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f74))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f74)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f74)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f74)" (( "(") (binary_expression "pcStack_1c0 + -0x7f74" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f74")) () ")"))))) () ")")) (argument_list "(param_3,pbVar3,0xffffffff)" (( "(") (identifier "param_3") (, ",") (identifier "pbVar3") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002e3c0;" (goto "goto") (statement_identifier "LAB_0002e3c0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);" (assignment_expression "iVar16 = *(int *)(pcStack_1c0 + -0x7fd0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (labeled_statement "LAB_0002e3c0:\n  iVar16 = FUN_0002d790(iVar16 + 0x245c);" (statement_identifier "LAB_0002e3c0") (: ":") (expression_statement "iVar16 = FUN_0002d790(iVar16 + 0x245c);" (assignment_expression "iVar16 = FUN_0002d790(iVar16 + 0x245c)" (identifier "iVar16") (= "=") (call_expression "FUN_0002d790(iVar16 + 0x245c)" (identifier "FUN_0002d790") (argument_list "(iVar16 + 0x245c)" (( "(") (binary_expression "iVar16 + 0x245c" (identifier "iVar16") (+ "+") (number_literal "0x245c")) () ")")))) (; ";"))) (if_statement "if (iVar16 == 0) {\n    iVar17 = -1;\n  }\n  else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar17 = -1;\n  }" ({ "{") (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" (identifier "iVar17") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);\n    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);\n    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);\n    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);\n    puStack_1c4 = &uStack_1b4;\n    uStack_1c8 = uVar2;\n    uStack_1cc = (uint)pbStack_130 & 0xff;\n    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);\n    pbStack_1d0 = abStack_1b0 + 0xc;\n    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);\n    if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }\n    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);" (call_expression "(**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7fb0))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7fb0)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7fb0)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7fb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fb0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fb0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fb0")) () ")"))))) () ")")) (argument_list "(iVar16,abStack_1b0,0xc)" (( "(") (identifier "iVar16") (, ",") (identifier "abStack_1b0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);" (call_expression "(**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f1c))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f1c)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f1c)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f1c)" (( "(") (binary_expression "pcStack_1c0 + -0x7f1c" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f1c")) () ")"))))) () ")")) (argument_list "(iVar16,abStack_1b0 + 0xc,0x40)" (( "(") (identifier "iVar16") (, ",") (binary_expression "abStack_1b0 + 0xc" (identifier "abStack_1b0") (+ "+") (number_literal "0xc")) (, ",") (number_literal "0x40") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);" (call_expression "(**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d98))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7d98)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7d98)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7d98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7d98)" (( "(") (binary_expression "pcStack_1c0 + -0x7d98" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7d98")) () ")"))))) () ")")) (argument_list "(iVar16,param_3,pbVar3)" (( "(") (identifier "iVar16") (, ",") (identifier "param_3") (, ",") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7e8c))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7e8c)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7e8c)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7e8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7e8c)" (( "(") (binary_expression "pcStack_1c0 + -0x7e8c" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7e8c")) () ")"))))) () ")")) (argument_list "(iVar16,iVar17,0x3c,uVar2)" (( "(") (identifier "iVar16") (, ",") (identifier "iVar17") (, ",") (number_literal "0x3c") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "puStack_1c4 = &uStack_1b4;" (assignment_expression "puStack_1c4 = &uStack_1b4" (identifier "puStack_1c4") (= "=") (pointer_expression "&uStack_1b4" (& "&") (identifier "uStack_1b4"))) (; ";")) (expression_statement "uStack_1c8 = uVar2;" (assignment_expression "uStack_1c8 = uVar2" (identifier "uStack_1c8") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uStack_1cc = (uint)pbStack_130 & 0xff;" (assignment_expression "uStack_1cc = (uint)pbStack_130 & 0xff" (identifier "uStack_1cc") (= "=") (binary_expression "(uint)pbStack_130 & 0xff" (cast_expression "(uint)pbStack_130" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbStack_130")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);" (assignment_expression "param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" (identifier "param_2") (= "=") (cast_expression "(byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c)" (( "(") (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x245c")) () ")")))) (; ";")) (expression_statement "pbStack_1d0 = abStack_1b0 + 0xc;" (assignment_expression "pbStack_1d0 = abStack_1b0 + 0xc" (identifier "pbStack_1d0") (= "=") (binary_expression "abStack_1b0 + 0xc" (identifier "abStack_1b0") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);" (assignment_expression "iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7f40))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7f40)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7f40)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7f40)" (( "(") (binary_expression "pcStack_1c0 + -0x7f40" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7f40")) () ")"))))) () ")")) (argument_list "(iVar16,param_2,uVar5,0)" (( "(") (identifier "iVar16") (, ",") (identifier "param_2") (, ",") (identifier "uVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }\n    else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);\n      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);\n    }" ({ "{") (expression_statement "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);" (assignment_expression "uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(pcStack_1c0 + -0x7d70))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7d70))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7d70)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7d70)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7d70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7d70)" (( "(") (binary_expression "pcStack_1c0 + -0x7d70" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7d70")) () ")"))))) () ")")) (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")")))) (; ";")) (expression_statement "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);" (assignment_expression "iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" (identifier "iVar17") (= "=") (call_expression "(**(code **)(pcStack_1c0 + -0x7ee8))(uVar5)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ee8))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7ee8)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7ee8)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7ee8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7ee8)" (( "(") (binary_expression "pcStack_1c0 + -0x7ee8" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7ee8")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" (else "else") (compound_statement "{\n      iVar17 = 0;\n      if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }\n    }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar6 == -2) {\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" (if "if") (parenthesized_expression "(iVar6 == -2)" (( "(") (binary_expression "iVar6 == -2" (identifier "iVar6") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n        if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }\n        iVar17 = -1;\n      }" ({ "{") (if_statement "if (uStack_1b4 < 0x16) {\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" (if "if") (parenthesized_expression "(uStack_1b4 < 0x16)" (( "(") (binary_expression "uStack_1b4 < 0x16" (identifier "uStack_1b4") (< "<") (number_literal "0x16")) () ")")) (compound_statement "{\n                    \n                    \n          iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();\n          return iVar16;\n        }" ({ "{") (expression_statement "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();" (assignment_expression "iVar16 = (*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" (identifier "iVar16") (= "=") (call_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))()" (parenthesized_expression "(*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))" (( "(") (pointer_expression "*(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" (* "*") (parenthesized_expression "(pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4))" (( "(") (binary_expression "pcStack_1c0 +\n                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" (identifier "pcStack_1c0") (+ "+") (pointer_expression "*(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)" (( "(") (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4" (binary_expression "*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550" (pointer_expression "*(int *)(pcStack_1c0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_1c0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7fd0)" (( "(") (binary_expression "pcStack_1c0 + -0x7fd0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x2550")) (+ "+") (binary_expression "uStack_1b4 * 4" (identifier "uStack_1b4") (* "*") (number_literal "4"))) () ")"))))) () ")"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar16;" (return "return") (identifier "iVar16") (; ";")) (} "}"))) (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" (identifier "iVar17") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);" (call_expression "(**(code **)(pcStack_1c0 + -0x7ea4))(iVar16)" (parenthesized_expression "(**(code **)(pcStack_1c0 + -0x7ea4))" (( "(") (pointer_expression "**(code **)(pcStack_1c0 + -0x7ea4)" (* "*") (pointer_expression "*(code **)(pcStack_1c0 + -0x7ea4)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7ea4)" (( "(") (binary_expression "pcStack_1c0 + -0x7ea4" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7ea4")) () ")"))))) () ")")) (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")"))) (; ";")) (} "}")))) (if_statement "if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {\n    return iVar17;\n  }" (if "if") (parenthesized_expression "(puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0))" (( "(") (binary_expression "puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" (identifier "puStack_164") (== "==") (cast_expression "(undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcStack_1c0 + -0x7dc0)" (* "*") (pointer_expression "*(undefined4 **)(pcStack_1c0 + -0x7dc0)" (* "*") (cast_expression "(undefined4 **)(pcStack_1c0 + -0x7dc0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7dc0)" (( "(") (binary_expression "pcStack_1c0 + -0x7dc0" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7dc0")) () ")"))))))) () ")")) (compound_statement "{\n    return iVar17;\n  }" ({ "{") (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);" (assignment_expression "pcVar18 = *(code **)(pcStack_1c0 + -0x7df4)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcStack_1c0 + -0x7df4)" (* "*") (cast_expression "(code **)(pcStack_1c0 + -0x7df4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_1c0 + -0x7df4)" (( "(") (binary_expression "pcStack_1c0 + -0x7df4" (identifier "pcStack_1c0") (+ "+") (number_literal "-0x7df4")) () ")"))))) (; ";")) (expression_statement "uVar5 = 0x2e638;" (assignment_expression "uVar5 = 0x2e638" (identifier "uVar5") (= "=") (number_literal "0x2e638")) (; ";")) (expression_statement "puVar8 = puStack_164;" (assignment_expression "puVar8 = puStack_164" (identifier "puVar8") (= "=") (identifier "puStack_164")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_208 = pcVar18 + 0x311d0;" (assignment_expression "pcStack_208 = pcVar18 + 0x311d0" (identifier "pcStack_208") (= "=") (binary_expression "pcVar18 + 0x311d0" (identifier "pcVar18") (+ "+") (number_literal "0x311d0"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x29410)" (( "(") (binary_expression "pcVar18 + 0x29410" (identifier "pcVar18") (+ "+") (number_literal "0x29410")) () ")"))))))) (; ";")) (expression_statement "uStack_1fc = 0x20e8080;" (assignment_expression "uStack_1fc = 0x20e8080" (identifier "uStack_1fc") (= "=") (number_literal "0x20e8080")) (; ";")) (expression_statement "uStack_1f8 = 0xa0000;" (assignment_expression "uStack_1f8 = 0xa0000" (identifier "uStack_1f8") (= "=") (number_literal "0xa0000")) (; ";")) (expression_statement "uStack_1f4 = 0;" (assignment_expression "uStack_1f4 = 0" (identifier "uStack_1f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_1f0 = 0;" (assignment_expression "uStack_1f0 = 0" (identifier "uStack_1f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar8 = 0x20e8080;" (assignment_expression "*puVar8 = 0x20e8080" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x20e8080")) (; ";")) (expression_statement "puVar8[1] = 0xa0000;" (assignment_expression "puVar8[1] = 0xa0000" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xa0000")) (; ";")) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 == (byte *)0x1) {\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x1)" (( "(") (binary_expression "param_2 == (byte *)0x1" (identifier "param_2") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    *(undefined1 *)((int)puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 3) = 0;\n    *(undefined1 *)(puVar8 + 1) = 0;\n    *(undefined1 *)((int)puVar8 + 5) = 0;\n    *(undefined1 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 7) = 0;\n    *(undefined1 *)(puVar8 + 2) = 0;\n    *(undefined1 *)((int)puVar8 + 9) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n    *(undefined1 *)(puVar8 + 3) = 0;\n    *(undefined1 *)((int)puVar8 + 0xd) = 0;\n    *(undefined1 *)((int)puVar8 + 0xe) = 0;\n    *(undefined1 *)((int)puVar8 + 0xf) = 0;\n  }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 2)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 2)" (( "(") (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 3)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 3)" (( "(") (binary_expression "(int)puVar8 + 3" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 1) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 1)" (( "(") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 5)" (( "(") (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 6)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 6)" (( "(") (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 7) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 7) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 7)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 7)" (( "(") (binary_expression "(int)puVar8 + 7" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 2)" (( "(") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 9) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 9) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 9)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 9)" (( "(") (binary_expression "(int)puVar8 + 9" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 10)" (( "(") (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xb)" (( "(") (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar8 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar8 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 3)" (( "(") (binary_expression "puVar8 + 3" (identifier "puVar8") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xd)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xd)" (( "(") (binary_expression "(int)puVar8 + 0xd" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xe)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xe)" (( "(") (binary_expression "(int)puVar8 + 0xe" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xf)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0xf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xf)" (( "(") (binary_expression "(int)puVar8 + 0xf" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {\n    return 0x10;\n  }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410))" (( "(") (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x29410)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x29410)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x29410)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x29410)" (( "(") (binary_expression "pcVar18 + 0x29410" (identifier "pcVar18") (+ "+") (number_literal "0x29410")) () ")"))))))) () ")")) (compound_statement "{\n    return 0x10;\n  }" ({ "{") (return_statement "return 0x10;" (return "return") (number_literal "0x10") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x293dc);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x293dc)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x293dc)" (* "*") (cast_expression "(code **)(pcVar18 + 0x293dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x293dc)" (( "(") (binary_expression "pcVar18 + 0x293dc" (identifier "pcVar18") (+ "+") (number_literal "0x293dc")) () ")"))))) (; ";")) (expression_statement "pcVar19 = FUN_0002e758;" (assignment_expression "pcVar19 = FUN_0002e758" (identifier "pcVar19") (= "=") (identifier "FUN_0002e758")) (; ";")) (expression_statement "puStack_1ec = puVar7;" (assignment_expression "puStack_1ec = puVar7" (identifier "puStack_1ec") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "uStack_1e4 = uVar5;" (assignment_expression "uStack_1e4 = uVar5" (identifier "uStack_1e4") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_248 = pcVar18 + 0x310b8;" (assignment_expression "pcStack_248 = pcVar18 + 0x310b8" (identifier "pcStack_248") (= "=") (binary_expression "pcVar18 + 0x310b8" (identifier "pcVar18") (+ "+") (number_literal "0x310b8"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);" (assignment_expression "puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar18 + 0x292f8)" (* "*") (pointer_expression "*(int **)(pcVar18 + 0x292f8)" (* "*") (cast_expression "(int **)(pcVar18 + 0x292f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x292f8)" (( "(") (binary_expression "pcVar18 + 0x292f8" (identifier "pcVar18") (+ "+") (number_literal "0x292f8")) () ")"))))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar18 + 0x290d4);" (assignment_expression "iVar6 = *(int *)(pcVar18 + 0x290d4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x290d4)" (* "*") (cast_expression "(int *)(pcVar18 + 0x290d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x290d4)" (( "(") (binary_expression "pcVar18 + 0x290d4" (identifier "pcVar18") (+ "+") (number_literal "0x290d4")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x7700);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x7700)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x7700)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x7700)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7700)" (( "(") (binary_expression "iVar6 + 0x7700" (identifier "iVar6") (+ "+") (number_literal "0x7700")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar6 + 0x7704);" (assignment_expression "uVar5 = *(undefined4 *)(iVar6 + 0x7704)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x7704)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x7704)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7704)" (( "(") (binary_expression "iVar6 + 0x7704" (identifier "iVar6") (+ "+") (number_literal "0x7704")) () ")"))))) (; ";")) (expression_statement "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar6 + 0x76fc)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x76fc)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x76fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x76fc)" (( "(") (binary_expression "iVar6 + 0x76fc" (identifier "iVar6") (+ "+") (number_literal "0x76fc")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (param_2 == (byte *)0x1) {\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x1)" (( "(") (binary_expression "param_2 == (byte *)0x1" (identifier "param_2") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    uStack_23c = 0x6000000;\n    uStack_238 = 0;\n    uStack_234 = 0;\n    uStack_233 = 0;\n    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined1 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xb) = 0;\n  }" ({ "{") (expression_statement "uStack_23c = 0x6000000;" (assignment_expression "uStack_23c = 0x6000000" (identifier "uStack_23c") (= "=") (number_literal "0x6000000")) (; ";")) (expression_statement "uStack_238 = 0;" (assignment_expression "uStack_238 = 0" (identifier "uStack_238") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_234 = 0;" (assignment_expression "uStack_234 = 0" (identifier "uStack_234") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_233 = 0;" (assignment_expression "uStack_233 = 0" (identifier "uStack_233") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0x6000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0x6000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" (* "*") (cast_expression "(undefined4 *)((int)puVar7 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 2)" (( "(") (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0x6000000")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" (* "*") (cast_expression "(undefined4 *)((int)puVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 6)" (( "(") (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 10)" (( "(") (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xb)" (( "(") (binary_expression "(int)puVar7 + 0xb" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" (else "else") (if_statement "if (param_2 == (byte *)0x2) {\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x2)" (( "(") (binary_expression "param_2 == (byte *)0x2" (identifier "param_2") (== "==") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n    pbStack_230 = (byte *)0xa0a0200;\n    uStack_22c = 0;\n    uStack_228 = 0x24b;\n    *puVar7 = 0xa0a0200;\n    puVar7[1] = 0;\n    puVar7[2] = 0x24b;\n    param_2 = pbStack_230;\n  }" ({ "{") (expression_statement "pbStack_230 = (byte *)0xa0a0200;" (assignment_expression "pbStack_230 = (byte *)0xa0a0200" (identifier "pbStack_230") (= "=") (cast_expression "(byte *)0xa0a0200" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa0a0200"))) (; ";")) (expression_statement "uStack_22c = 0;" (assignment_expression "uStack_22c = 0" (identifier "uStack_22c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_228 = 0x24b;" (assignment_expression "uStack_228 = 0x24b" (identifier "uStack_228") (= "=") (number_literal "0x24b")) (; ";")) (expression_statement "*puVar7 = 0xa0a0200;" (assignment_expression "*puVar7 = 0xa0a0200" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xa0a0200")) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0x24b;" (assignment_expression "puVar7[2] = 0x24b" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x24b")) (; ";")) (expression_statement "param_2 = pbStack_230;" (assignment_expression "param_2 = pbStack_230" (identifier "param_2") (= "=") (identifier "pbStack_230")) (; ";")) (} "}"))))) (if_statement "if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {\n    return 0xc;\n  }" (if "if") (parenthesized_expression "(puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8))" (( "(") (binary_expression "puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)**(int **)(pcVar18 + 0x292f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar18 + 0x292f8)" (* "*") (pointer_expression "*(int **)(pcVar18 + 0x292f8)" (* "*") (cast_expression "(int **)(pcVar18 + 0x292f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x292f8)" (( "(") (binary_expression "pcVar18 + 0x292f8" (identifier "pcVar18") (+ "+") (number_literal "0x292f8")) () ")"))))))) () ")")) (compound_statement "{\n    return 0xc;\n  }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x292c4);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x292c4)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x292c4)" (* "*") (cast_expression "(code **)(pcVar18 + 0x292c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x292c4)" (( "(") (binary_expression "pcVar18 + 0x292c4" (identifier "pcVar18") (+ "+") (number_literal "0x292c4")) () ")"))))) (; ";")) (expression_statement "pcVar20 = FUN_0002e898;" (assignment_expression "pcVar20 = FUN_0002e898" (identifier "pcVar20") (= "=") (identifier "FUN_0002e898")) (; ";")) (expression_statement "puStack_224 = puVar8;" (assignment_expression "puStack_224 = puVar8" (identifier "puStack_224") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "pcStack_21c = pcVar19;" (assignment_expression "pcStack_21c = pcVar19" (identifier "pcStack_21c") (= "=") (identifier "pcVar19")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);" (assignment_expression "puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" (identifier "puStack_26c") (= "=") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x291b8)" (( "(") (binary_expression "pcVar18 + 0x291b8" (identifier "pcVar18") (+ "+") (number_literal "0x291b8")) () ")"))))))) (; ";")) (expression_statement "iStack_264 = iVar16;" (assignment_expression "iStack_264 = iVar16" (identifier "iStack_264") (= "=") (identifier "iVar16")) (; ";")) (expression_statement "iStack_260 = iVar17;" (assignment_expression "iStack_260 = iVar17" (identifier "iStack_260") (= "=") (identifier "iVar17")) (; ";")) (expression_statement "pcStack_25c = pcVar20;" (assignment_expression "pcStack_25c = pcVar20" (identifier "pcStack_25c") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);" (call_expression "(**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e)" (parenthesized_expression "(**(code **)(pcVar18 + 0x290d0))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x290d0)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x290d0)" (* "*") (cast_expression "(code **)(pcVar18 + 0x290d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x290d0)" (( "(") (binary_expression "pcVar18 + 0x290d0" (identifier "pcVar18") (+ "+") (number_literal "0x290d0")) () ")"))))) () ")")) (argument_list "((int)&uStack_28c + 2,0,0x1e)" (( "(") (binary_expression "(int)&uStack_28c + 2" (cast_expression "(int)&uStack_28c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_28c" (& "&") (identifier "uStack_28c"))) (+ "+") (number_literal "2")) (, ",") (number_literal "0") (, ",") (number_literal "0x1e") () ")"))) (; ";")) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28f94);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28f94)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x28f94)" (* "*") (cast_expression "(int *)(pcVar18 + 0x28f94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x28f94)" (( "(") (binary_expression "pcVar18 + 0x28f94" (identifier "pcVar18") (+ "+") (number_literal "0x28f94")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(iVar16 + 0x76e0);" (assignment_expression "uVar15 = *(undefined4 *)(iVar16 + 0x76e0)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76e0)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76e0)" (( "(") (binary_expression "iVar16 + 0x76e0" (identifier "iVar16") (+ "+") (number_literal "0x76e0")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(iVar16 + 0x76e4);" (assignment_expression "uVar14 = *(undefined4 *)(iVar16 + 0x76e4)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76e4)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76e4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76e4)" (( "(") (binary_expression "iVar16 + 0x76e4" (identifier "iVar16") (+ "+") (number_literal "0x76e4")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(undefined4 *)(iVar16 + 0x76e8);" (assignment_expression "uVar13 = *(undefined4 *)(iVar16 + 0x76e8)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76e8)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76e8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76e8)" (( "(") (binary_expression "iVar16 + 0x76e8" (identifier "iVar16") (+ "+") (number_literal "0x76e8")) () ")"))))) (; ";")) (expression_statement "iStack_2d8 = *(int *)(iVar16 + 0x76ec);" (assignment_expression "iStack_2d8 = *(int *)(iVar16 + 0x76ec)" (identifier "iStack_2d8") (= "=") (pointer_expression "*(int *)(iVar16 + 0x76ec)" (* "*") (cast_expression "(int *)(iVar16 + 0x76ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76ec)" (( "(") (binary_expression "iVar16 + 0x76ec" (identifier "iVar16") (+ "+") (number_literal "0x76ec")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(iVar16 + 0x76f0);" (assignment_expression "uVar11 = *(undefined4 *)(iVar16 + 0x76f0)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76f0)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76f0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76f0)" (( "(") (binary_expression "iVar16 + 0x76f0" (identifier "iVar16") (+ "+") (number_literal "0x76f0")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76f4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76f4)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76f4)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76f4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76f4)" (( "(") (binary_expression "iVar16 + 0x76f4" (identifier "iVar16") (+ "+") (number_literal "0x76f4")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76f8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76f8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76f8)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76f8)" (( "(") (binary_expression "iVar16 + 0x76f8" (identifier "iVar16") (+ "+") (number_literal "0x76f8")) () ")"))))) (; ";")) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76dc)" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76dc)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76dc)" (( "(") (binary_expression "iVar16 + 0x76dc" (identifier "iVar16") (+ "+") (number_literal "0x76dc")) () ")"))))) (; ";")) (expression_statement "puVar8[1] = uVar15;" (assignment_expression "puVar8[1] = uVar15" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar8[2] = uVar14;" (assignment_expression "puVar8[2] = uVar14" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar8[3] = uVar13;" (assignment_expression "puVar8[3] = uVar13" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar8[4] = iStack_2d8;" (assignment_expression "puVar8[4] = iStack_2d8" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iStack_2d8")) (; ";")) (expression_statement "puVar8[5] = uVar11;" (assignment_expression "puVar8[5] = uVar11" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar8[6] = uVar10;" (assignment_expression "puVar8[6] = uVar10" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar8[7] = uVar5;" (assignment_expression "puVar8[7] = uVar5" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (param_2 == (byte *)0x1) {\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }\n  else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x1)" (( "(") (binary_expression "param_2 == (byte *)0x1" (identifier "param_2") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    iStack_2d8 = 0;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n    puVar8[3] = 0;\n    puVar8[4] = 0;\n    puVar8[5] = 0;\n    puVar8[6] = 0;\n    puVar8[7] = 0;\n  }" ({ "{") (expression_statement "iStack_2d8 = 0;" (assignment_expression "iStack_2d8 = 0" (identifier "iStack_2d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[5] = 0;" (assignment_expression "puVar8[5] = 0" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" (else "else") (if_statement "if (param_2 == (byte *)0x2) {\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x2)" (( "(") (binary_expression "param_2 == (byte *)0x2" (identifier "param_2") (== "==") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));\n    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);\n    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);\n    *puVar8 = uStack_28c;\n    puVar8[1] = uStack_288;\n    puVar8[2] = uStack_284;\n    puVar8[3] = uStack_280;\n    puVar8[4] = iStack_27c;\n    puVar8[5] = uStack_278;\n    puVar8[6] = uStack_274;\n    puVar8[7] = uStack_270;\n    iStack_2d8 = iStack_27c;\n  }" ({ "{") (expression_statement "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));" (assignment_expression "uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" (identifier "uStack_28c") (= "=") (call_expression "CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_))" (identifier "CONCAT13") (argument_list "(0x4a,CONCAT12(1,uStack_28c._2_2_))" (( "(") (number_literal "0x4a") (, ",") (call_expression "CONCAT12(1,uStack_28c._2_2_)" (identifier "CONCAT12") (argument_list "(1,uStack_28c._2_2_)" (( "(") (number_literal "1") (, ",") (field_expression "uStack_28c._2_2_" (identifier "uStack_28c") (. ".") (field_identifier "_2_2_")) () ")"))) () ")")))) (; ";")) (expression_statement "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);" (assignment_expression "uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c)" (identifier "uStack_28c") (= "=") (call_expression "CONCAT31(uStack_28c._0_3_,0x1c)" (identifier "CONCAT31") (argument_list "(uStack_28c._0_3_,0x1c)" (( "(") (field_expression "uStack_28c._0_3_" (identifier "uStack_28c") (. ".") (field_identifier "_0_3_")) (, ",") (number_literal "0x1c") () ")")))) (; ";")) (expression_statement "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);" (assignment_expression "uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288)" (field_expression "uStack_288._2_2_" (identifier "uStack_288") (. ".") (field_identifier "_2_2_")) (= "=") (call_expression "CONCAT11(0x40,(undefined1)uStack_288)" (identifier "CONCAT11") (argument_list "(0x40,(undefined1)uStack_288)" (( "(") (number_literal "0x40") (, ",") (cast_expression "(undefined1)uStack_288" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_288")) () ")")))) (; ";")) (expression_statement "*puVar8 = uStack_28c;" (assignment_expression "*puVar8 = uStack_28c" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uStack_28c")) (; ";")) (expression_statement "puVar8[1] = uStack_288;" (assignment_expression "puVar8[1] = uStack_288" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_288")) (; ";")) (expression_statement "puVar8[2] = uStack_284;" (assignment_expression "puVar8[2] = uStack_284" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uStack_284")) (; ";")) (expression_statement "puVar8[3] = uStack_280;" (assignment_expression "puVar8[3] = uStack_280" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_280")) (; ";")) (expression_statement "puVar8[4] = iStack_27c;" (assignment_expression "puVar8[4] = iStack_27c" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iStack_27c")) (; ";")) (expression_statement "puVar8[5] = uStack_278;" (assignment_expression "puVar8[5] = uStack_278" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_278")) (; ";")) (expression_statement "puVar8[6] = uStack_274;" (assignment_expression "puVar8[6] = uStack_274" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_274")) (; ";")) (expression_statement "puVar8[7] = uStack_270;" (assignment_expression "puVar8[7] = uStack_270" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uStack_270")) (; ";")) (expression_statement "iStack_2d8 = iStack_27c;" (assignment_expression "iStack_2d8 = iStack_27c" (identifier "iStack_2d8") (= "=") (identifier "iStack_27c")) (; ";")) (} "}"))))) (if_statement "if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {\n    return 0x20;\n  }" (if "if") (parenthesized_expression "(puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8))" (( "(") (binary_expression "puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" (identifier "puStack_26c") (== "==") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x291b8)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x291b8)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x291b8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x291b8)" (( "(") (binary_expression "pcVar18 + 0x291b8" (identifier "pcVar18") (+ "+") (number_literal "0x291b8")) () ")"))))))) () ")")) (compound_statement "{\n    return 0x20;\n  }" ({ "{") (return_statement "return 0x20;" (return "return") (number_literal "0x20") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x29184);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x29184)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x29184)" (* "*") (cast_expression "(code **)(pcVar18 + 0x29184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x29184)" (( "(") (binary_expression "pcVar18 + 0x29184" (identifier "pcVar18") (+ "+") (number_literal "0x29184")) () ")"))))) (; ";")) (expression_statement "puVar8 = puStack_26c;" (assignment_expression "puVar8 = puStack_26c" (identifier "puVar8") (= "=") (identifier "puStack_26c")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);" (assignment_expression "puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28fc4)" (( "(") (binary_expression "pcVar18 + 0x28fc4" (identifier "pcVar18") (+ "+") (number_literal "0x28fc4")) () ")"))))))) (; ";")) (expression_statement "iVar16 = *(int *)(pcVar18 + 0x28da0);" (assignment_expression "iVar16 = *(int *)(pcVar18 + 0x28da0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x28da0)" (* "*") (cast_expression "(int *)(pcVar18 + 0x28da0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x28da0)" (( "(") (binary_expression "pcVar18 + 0x28da0" (identifier "pcVar18") (+ "+") (number_literal "0x28da0")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar16 + 0x76d4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar16 + 0x76d4)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76d4)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76d4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76d4)" (( "(") (binary_expression "iVar16 + 0x76d4" (identifier "iVar16") (+ "+") (number_literal "0x76d4")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar16 + 0x76d8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar16 + 0x76d8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76d8)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76d8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76d8)" (( "(") (binary_expression "iVar16 + 0x76d8" (identifier "iVar16") (+ "+") (number_literal "0x76d8")) () ")"))))) (; ";")) (expression_statement "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0);" (assignment_expression "*puVar8 = *(undefined4 *)(iVar16 + 0x76d0)" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*(undefined4 *)(iVar16 + 0x76d0)" (* "*") (cast_expression "(undefined4 *)(iVar16 + 0x76d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x76d0)" (( "(") (binary_expression "iVar16 + 0x76d0" (identifier "iVar16") (+ "+") (number_literal "0x76d0")) () ")"))))) (; ";")) (expression_statement "puVar8[1] = uVar10;" (assignment_expression "puVar8[1] = uVar10" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar8[2] = uVar5;" (assignment_expression "puVar8[2] = uVar5" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" (if "if") (parenthesized_expression "(iStack_2d8 == 1)" (( "(") (binary_expression "iStack_2d8 == 1" (identifier "iStack_2d8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;\n    *(undefined4 *)((int)puVar8 + 6) = 0;\n    *(undefined1 *)((int)puVar8 + 10) = 0;\n    *(undefined1 *)((int)puVar8 + 0xb) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000;" (assignment_expression "*(undefined4 *)((int)puVar8 + 2) = 0x40f0000" (pointer_expression "*(undefined4 *)((int)puVar8 + 2)" (* "*") (cast_expression "(undefined4 *)((int)puVar8 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 2)" (( "(") (binary_expression "(int)puVar8 + 2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0x40f0000")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar8 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar8 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar8 + 6)" (* "*") (cast_expression "(undefined4 *)((int)puVar8 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 6)" (( "(") (binary_expression "(int)puVar8 + 6" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 10) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 10) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 10)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 10)" (( "(") (binary_expression "(int)puVar8 + 10" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0xb) = 0;" (assignment_expression "*(undefined1 *)((int)puVar8 + 0xb) = 0" (pointer_expression "*(undefined1 *)((int)puVar8 + 0xb)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0xb)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0xb)" (( "(") (binary_expression "(int)puVar8 + 0xb" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xb")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" (else "else") (if_statement "if (iStack_2d8 == 2) {\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" (if "if") (parenthesized_expression "(iStack_2d8 == 2)" (( "(") (binary_expression "iStack_2d8 == 2" (identifier "iStack_2d8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    iStack_2d8 = 0x1c0a0800;\n    *puVar8 = 0x1c0a0800;\n    puVar8[1] = 0;\n    puVar8[2] = 0;\n  }" ({ "{") (expression_statement "iStack_2d8 = 0x1c0a0800;" (assignment_expression "iStack_2d8 = 0x1c0a0800" (identifier "iStack_2d8") (= "=") (number_literal "0x1c0a0800")) (; ";")) (expression_statement "*puVar8 = 0x1c0a0800;" (assignment_expression "*puVar8 = 0x1c0a0800" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0x1c0a0800")) (; ";")) (expression_statement "puVar8[1] = 0;" (assignment_expression "puVar8[1] = 0" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[2] = 0;" (assignment_expression "puVar8[2] = 0" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (if_statement "if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {\n    return 0xc;\n  }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4))" (( "(") (binary_expression "puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar18 + 0x28fc4)" (* "*") (pointer_expression "*(undefined4 **)(pcVar18 + 0x28fc4)" (* "*") (cast_expression "(undefined4 **)(pcVar18 + 0x28fc4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28fc4)" (( "(") (binary_expression "pcVar18 + 0x28fc4" (identifier "pcVar18") (+ "+") (number_literal "0x28fc4")) () ")"))))))) () ")")) (compound_statement "{\n    return 0xc;\n  }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28f90);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28f90)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x28f90)" (* "*") (cast_expression "(code **)(pcVar18 + 0x28f90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28f90)" (( "(") (binary_expression "pcVar18 + 0x28f90" (identifier "pcVar18") (+ "+") (number_literal "0x28f90")) () ")"))))) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar16 = **(int **)(pcVar18 + 0x28e80);" (assignment_expression "iVar16 = **(int **)(pcVar18 + 0x28e80)" (identifier "iVar16") (= "=") (pointer_expression "**(int **)(pcVar18 + 0x28e80)" (* "*") (pointer_expression "*(int **)(pcVar18 + 0x28e80)" (* "*") (cast_expression "(int **)(pcVar18 + 0x28e80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28e80)" (( "(") (binary_expression "pcVar18 + 0x28e80" (identifier "pcVar18") (+ "+") (number_literal "0x28e80")) () ")")))))) (; ";")) (expression_statement "iVar17 = *(int *)(pcVar18 + 0x28c5c);" (assignment_expression "iVar17 = *(int *)(pcVar18 + 0x28c5c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x28c5c)" (* "*") (cast_expression "(int *)(pcVar18 + 0x28c5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x28c5c)" (( "(") (binary_expression "pcVar18 + 0x28c5c" (identifier "pcVar18") (+ "+") (number_literal "0x28c5c")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar17 + 0x76c4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar17 + 0x76c4)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar17 + 0x76c4)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x76c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76c4)" (( "(") (binary_expression "iVar17 + 0x76c4" (identifier "iVar17") (+ "+") (number_literal "0x76c4")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar17 + 0x76c8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar17 + 0x76c8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar17 + 0x76c8)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x76c8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76c8)" (( "(") (binary_expression "iVar17 + 0x76c8" (identifier "iVar17") (+ "+") (number_literal "0x76c8")) () ")"))))) (; ";")) (expression_statement "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0);" (assignment_expression "*puVar7 = *(undefined4 *)(iVar17 + 0x76c0)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*(undefined4 *)(iVar17 + 0x76c0)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x76c0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76c0)" (( "(") (binary_expression "iVar17 + 0x76c0" (identifier "iVar17") (+ "+") (number_literal "0x76c0")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7[2] = uVar5;" (assignment_expression "puVar7[2] = uVar5" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);" (assignment_expression "*(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc)" (pointer_expression "*(undefined1 *)(puVar7 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 3)" (( "(") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar17 + 0x76cc)" (* "*") (cast_expression "(undefined1 *)(iVar17 + 0x76cc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76cc)" (( "(") (binary_expression "iVar17 + 0x76cc" (identifier "iVar17") (+ "+") (number_literal "0x76cc")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xd)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xd)" (( "(") (binary_expression "(int)puVar7 + 0xd" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xd")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar17 + 0x76cd)" (* "*") (cast_expression "(undefined1 *)(iVar17 + 0x76cd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76cd)" (( "(") (binary_expression "iVar17 + 0x76cd" (identifier "iVar17") (+ "+") (number_literal "0x76cd")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce)" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xe)" (( "(") (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xe")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar17 + 0x76ce)" (* "*") (cast_expression "(undefined1 *)(iVar17 + 0x76ce)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x76ce)" (( "(") (binary_expression "iVar17 + 0x76ce" (identifier "iVar17") (+ "+") (number_literal "0x76ce")) () ")"))))) (; ";")) (if_statement "if (iStack_2d8 == 1) {\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }\n  else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" (if "if") (parenthesized_expression "(iStack_2d8 == 1)" (( "(") (binary_expression "iStack_2d8 == 1" (identifier "iStack_2d8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;\n    *(undefined4 *)((int)puVar7 + 6) = 0;\n    *(undefined4 *)((int)puVar7 + 10) = 0;\n    *(undefined1 *)((int)puVar7 + 0xe) = 0;\n    *(undefined1 *)((int)puVar7 + 0xf) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)puVar7 + 2) = 0xff000000;" (assignment_expression "*(undefined4 *)((int)puVar7 + 2) = 0xff000000" (pointer_expression "*(undefined4 *)((int)puVar7 + 2)" (* "*") (cast_expression "(undefined4 *)((int)puVar7 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 2)" (( "(") (binary_expression "(int)puVar7 + 2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0xff000000")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar7 + 6) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 6) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 6)" (* "*") (cast_expression "(undefined4 *)((int)puVar7 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 6)" (( "(") (binary_expression "(int)puVar7 + 6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)puVar7 + 10) = 0;" (assignment_expression "*(undefined4 *)((int)puVar7 + 10) = 0" (pointer_expression "*(undefined4 *)((int)puVar7 + 10)" (* "*") (cast_expression "(undefined4 *)((int)puVar7 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 10)" (( "(") (binary_expression "(int)puVar7 + 10" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 0xe) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xe) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xe)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xe)" (( "(") (binary_expression "(int)puVar7 + 0xe" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar7 + 0xf) = 0;" (assignment_expression "*(undefined1 *)((int)puVar7 + 0xf) = 0" (pointer_expression "*(undefined1 *)((int)puVar7 + 0xf)" (* "*") (cast_expression "(undefined1 *)((int)puVar7 + 0xf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xf)" (( "(") (binary_expression "(int)puVar7 + 0xf" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" (else "else") (if_statement "if (iStack_2d8 == 2) {\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" (if "if") (parenthesized_expression "(iStack_2d8 == 2)" (( "(") (binary_expression "iStack_2d8 == 2" (identifier "iStack_2d8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    *puVar7 = 0xe0000;\n    puVar7[1] = 0;\n    puVar7[2] = 0;\n    puVar7[3] = 0;\n  }" ({ "{") (expression_statement "*puVar7 = 0xe0000;" (assignment_expression "*puVar7 = 0xe0000" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xe0000")) (; ";")) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (if_statement "if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {\n    return 0xf;\n  }" (if "if") (parenthesized_expression "(iVar16 == **(int **)(pcVar18 + 0x28e80))" (( "(") (binary_expression "iVar16 == **(int **)(pcVar18 + 0x28e80)" (identifier "iVar16") (== "==") (pointer_expression "**(int **)(pcVar18 + 0x28e80)" (* "*") (pointer_expression "*(int **)(pcVar18 + 0x28e80)" (* "*") (cast_expression "(int **)(pcVar18 + 0x28e80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28e80)" (( "(") (binary_expression "pcVar18 + 0x28e80" (identifier "pcVar18") (+ "+") (number_literal "0x28e80")) () ")")))))) () ")")) (compound_statement "{\n    return 0xf;\n  }" ({ "{") (return_statement "return 0xf;" (return "return") (number_literal "0xf") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0x28e4c);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0x28e4c)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(pcVar18 + 0x28e4c)" (* "*") (cast_expression "(code **)(pcVar18 + 0x28e4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x28e4c)" (( "(") (binary_expression "pcVar18 + 0x28e4c" (identifier "pcVar18") (+ "+") (number_literal "0x28e4c")) () ")"))))) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;" (return "return") (binary_expression "*(int *)(pcVar18 + 0x28ae8) + 0x25b0" (pointer_expression "*(int *)(pcVar18 + 0x28ae8)" (* "*") (cast_expression "(int *)(pcVar18 + 0x28ae8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x28ae8)" (( "(") (binary_expression "pcVar18 + 0x28ae8" (identifier "pcVar18") (+ "+") (number_literal "0x28ae8")) () ")")))) (+ "+") (number_literal "0x25b0")) (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0002e220) */
/* WARNING: Removing unreachable block (ram,0x0002e278) */
/* WARNING: Removing unreachable block (ram,0x0002e228) */
/* WARNING: Removing unreachable block (ram,0x0002e230) */
/* WARNING: Removing unreachable block (ram,0x0002e254) */
/* WARNING: Removing unreachable block (ram,0x0002e258) */
/* WARNING: Removing unreachable block (ram,0x0002df94) */
/* WARNING: Removing unreachable block (ram,0x0002e2c4) */

int function_1(int sg_fd,int rt,int var_11,void *resp,int mx_resp_len,type_1 noisy,
                    int var_2)

{
  type_2 var_15;
  uint8_t *var_12;
  uint8_t *var_28;
  uint8_t *var_9;
  uint8_t *var_17;
  type_3 *var_29;
  type_4 uVar7;
  int var_30;
  type_4 *var_34;
  type_4 *var_33;
  type_4 uVar11;
  type_4 uVar12;
  type_5 *var_13;
  type_4 uVar14;
  type_4 uVar15;
  type_4 uVar16;
  type_3 *var_8;
  type_6 *var_5;
  int var_26;
  uint8_t *unaff_s2;
  type_6 *unaff_s4;
  type_6 *var_20;
  type_6 *var_6;
  type_7 *var_23;
  type_7 *pcVar20;
  type_7 *pcVar21;
  int var_40;
  type_4 uStack_28c;
  type_4 uStack_288;
  type_4 uStack_284;
  type_4 uStack_280;
  int iStack_27c;
  type_4 uStack_278;
  type_4 uStack_274;
  type_4 uStack_270;
  type_4 *var_39;
  type_3 *psStack_264;
  int iStack_260;
  type_7 *pcStack_25c;
  type_7 *pcStack_248;
  type_4 uStack_23c;
  type_4 uStack_238;
  type_8 uStack_234;
  type_8 uStack_233;
  uint8_t *puStack_230;
  type_4 uStack_22c;
  type_4 uStack_228;
  type_4 *puStack_224;
  type_7 *pcStack_21c;
  type_7 *pcStack_208;
  type_4 uStack_1fc;
  type_4 uStack_1f8;
  type_4 uStack_1f4;
  type_4 uStack_1f0;
  type_4 *puStack_1ec;
  type_4 uStack_1e4;
  type_6 *pbStack_1d0;
  type_2 uStack_1cc;
  type_2 uStack_1c8;
  type_2 *puStack_1c4;
  type_7 *var_25;
  type_2 var_31;
  type_6 var_27 [76];
  type_4 *var_32;
  type_3 *psStack_160;
  int iStack_15c;
  type_4 *puStack_158;
  uint8_t *puStack_154;
  type_6 *pbStack_150;
  type_6 *pbStack_14c;
  type_6 *pbStack_148;
  type_7 *pcStack_144;
  type_6 *pbStack_130;
  type_2 var_24;
  type_8 *puStack_128;
  int *piStack_124;
  type_5 *var_19;
  int var_21;
  uint8_t *puStack_114;
  type_6 var_14 [2];
  type_8 auStack_10e [4];
  type_8 uStack_10a;
  type_8 uStack_109;
  type_9 uStack_108;
  type_8 uStack_106;
  type_8 uStack_105;
  type_6 abStack_104 [64];
  int var_22;
  type_3 *psStack_bc;
  int iStack_b8;
  uint8_t *puStack_b4;
  int iStack_b0;
  type_6 *pbStack_ac;
  type_6 *pbStack_a8;
  type_7 *pcStack_a4;
  uint8_t *local_90;
  type_4 *local_8c;
  uint8_t *local_88;
  int *local_84;
  int var_10;
  uint32_t u;
  uint8_t gcCmdBlk [10];
  type_6 abStack_66 [2];
  uint8_t sense_b [64];
  
  var_12 = *(uint8_t **)PTR___stack_chk_guard_00057a50;
  gcCmdBlk[0] = 'F';
  gcCmdBlk[1] = '\0';
  gcCmdBlk[2] = '\0';
  gcCmdBlk[3] = '\0';
  gcCmdBlk[4] = '\0';
  gcCmdBlk[5] = '\0';
  gcCmdBlk[6] = '\0';
  gcCmdBlk[7] = '\0';
  gcCmdBlk[8] = '\0';
  gcCmdBlk[9] = '\0';
  var_28 = (uint8_t *)var_11;
  if ((type_2)rt < 4) {
    gcCmdBlk[1] = (uint8_t)rt;
    var_9 = (uint8_t *)resp;
    unaff_s4 = (type_6 *)resp;
    var_20 = (type_6 *)sg_fd;
    if ((type_2)var_11 < 0x10000) {
      gcCmdBlk._2_2_ = (type_9)var_11;
      if ((type_2)mx_resp_len < 0x10000) {
        u = var_1((short)mx_resp_len,u._2_2_);
        gcCmdBlk[7] = (uint8_t)((type_2)mx_resp_len >> 8);
        gcCmdBlk[8] = (uint8_t)mx_resp_len;
        var_17 = (uint8_t *)rt;
        if (var_2 != 0) {
          (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x17c0,var_3 + 0x23e0);
          var_5 = gcCmdBlk;
          var_6 = abStack_66;
          unaff_s2 = var_4 + 0x511c;
          do {
            var_17 = (uint8_t *)(type_2)*var_5;
            (*(type_7 *)PTR_pr2ws_000578ec)(unaff_s2);
            var_5 = var_5 + 1;
          } while (var_5 != var_6);
          (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x29c4);
          var_28 = (uint8_t *)var_11;
        }
        var_11 = (int)var_17;
        var_8 = var_7(var_3 + 0x23e0);
        if (var_8 == (type_3 *)0x0) {
          var_26 = -1;
        }
        else {
          (*(type_7 *)PTR_set_scsi_pt_cdb_00057860)(var_8,gcCmdBlk,10);
          unaff_s2 = sense_b;
          (*(type_7 *)PTR_set_scsi_pt_sense_000578f4)(var_8,unaff_s2,0x40);
          (*(type_7 *)PTR_set_scsi_pt_data_in_00057a84)(var_8,resp,mx_resp_len);
          var_28 = (uint8_t *)(*(type_7 *)PTR_do_scsi_pt_00057984)(var_8,sg_fd,0x3c,var_2);
          local_84 = &var_10;
          local_88 = (uint8_t *)var_2;
          local_8c = (type_4 *)(type_2)noisy;
          var_11 = (int)(var_3 + 0x23e0);
          local_90 = unaff_s2;
          var_9 = (uint8_t *)(*(type_7 *)PTR_sg_cmds_process_resp_000578d0)(var_8);
          if (var_9 == (uint8_t *)0xffffffff) {
            uVar7 = (*(type_7 *)PTR_get_scsi_pt_os_err_00057aa0)(var_8);
            var_26 = (*(type_7 *)PTR_sg_convert_errno_00057928)(uVar7);
          }
          else if (var_9 == (uint8_t *)0xfffffffe) {
            if (var_10 - 5U < 0x11) {
                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */
                    /* WARNING: Treating indirect jump as call */
              var_26 = (*(type_7 *)(&_gp + *(int *)(var_3 + (var_10 - 5U) * 4 + 0x24c8)))
                                 ();
              return var_26;
            }
            var_26 = -1;
          }
          else if (var_2 < 3) {
            var_26 = 0;
          }
          else {
            var_26 = 0;
            if (3 < (int)var_9) {
                    /* WARNING: Load size is inaccurate */
              u = *resp;
              var_11 = u;
              if ((int)u < 0) {
                var_11 = 0;
              }
              if ((int)var_9 <= var_11) {
                var_11 = (int)var_9;
              }
              (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x23f4,var_3 + 0x23e0);
              if (var_2 == 3) {
                if (var_11 < 0x101) {
                  var_13 = var_3 + 0x17b4;
                }
                else {
                  var_13 = var_3 + 0x1b00;
                }
                (*(type_7 *)PTR_pr2ws_000578ec)(var_4 + 0x55c4,var_13);
                var_28 = (uint8_t *)0xffffffff;
                var_9 = (uint8_t *)0x100;
                if (var_11 < 0x101) {
                  var_9 = (uint8_t *)var_11;
                }
                (*(type_7 *)PTR_hex2stderr_0005789c)(resp);
                var_26 = 0;
                var_11 = (int)var_9;
              }
              else {
                (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x2e44);
                var_28 = (uint8_t *)0x0;
                (*(type_7 *)PTR_hex2stderr_0005789c)(resp);
                var_26 = 0;
              }
            }
          }
          (*(type_7 *)PTR_destruct_scsi_pt_obj_0005796c)(var_8);
          var_9 = (uint8_t *)mx_resp_len;
        }
      }
      else {
        (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x23c8);
        var_26 = -1;
      }
    }
    else {
      (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x23a4);
      var_26 = -1;
    }
  }
  else {
    (*(type_7 *)PTR_pr2ws_000578ec)(var_3 + 0x2390);
    var_26 = -1;
    var_11 = rt;
    var_9 = (uint8_t *)resp;
  }
  if (var_12 == *(uint8_t **)PTR___stack_chk_guard_00057a50) {
    return var_26;
  }
  var_23 = sg_ll_get_performance;
  var_13 = PTR___stack_chk_fail_00057a1c;
  (*(type_7 *)PTR___stack_chk_fail_00057a1c)();
  var_33 = local_8c;
  var_17 = local_90;
  var_19 = var_13 + 0x31938;
  pcStack_a4 = var_23;
  pbStack_a8 = var_20;
  pbStack_ac = unaff_s4;
  iStack_b0 = var_2;
  puStack_b4 = unaff_s2;
  iStack_b8 = var_26;
  psStack_bc = var_8;
  var_22 = **(int **)(var_13 + 0x29b78);
  var_14[0] = 0xac;
  var_14[1] = 0;
  auStack_10e[0] = 0;
  auStack_10e[1] = 0;
  auStack_10e[2] = 0;
  auStack_10e[3] = 0;
  uStack_10a = 0;
  uStack_109 = 0;
  uStack_108 = 0;
  uStack_106 = 0;
  uStack_105 = 0;
  if ((type_2)var_11 < (uint8_t *)0x20) {
    var_14[1] = (char)var_11;
    var_5 = var_14 + 2;
    var_15 = (type_2)var_5 & 3;
    *(type_2 *)(var_5 + -var_15) =
         *(type_2 *)(var_5 + -var_15) & -1 << (4 - var_15) * 8 | (type_2)var_28 >> var_15 * 8;
    var_5 = var_14 + 5;
    var_15 = (type_2)var_5 & 3;
    *(type_2 *)(var_5 + -var_15) =
         *(type_2 *)(var_5 + -var_15) & 0xffffffffU >> (var_15 + 1) * 8 |
         (int)var_28 << (3 - var_15) * 8;
    var_2 = (int)var_12;
    puStack_114 = var_28;
    if (var_9 < "\x7fELF\x01\x02\x01") {
      uStack_108 = var_16(var_9,0);
      if (var_17 < (uint8_t *)0x100) {
        uStack_106 = var_18(var_17,0);
        (**(type_7 **)(var_13 + 0x29a14))
                  (*(int *)(var_13 + 0x29968) + 0x17c0,*(int *)(var_13 + 0x29968) + 0x244c);
        var_5 = var_14;
        var_20 = abStack_104;
        unaff_s4 = (type_6 *)(*(int *)(var_19 + -0x7fd4) + 0x511c);
        do {
          var_11 = (int)*var_5;
          (**(type_7 **)(var_19 + -0x7f24))(unaff_s4);
          var_5 = var_5 + 1;
        } while (var_5 != var_20);
        (**(type_7 **)(var_19 + -0x7f24))(*(int *)(var_19 + -0x7fd0) + 0x29c4);
        var_8 = var_7((char *)(*(int *)(var_19 + -0x7fd0) + 0x244c));
        if (var_8 == (type_3 *)0x0) {
          var_26 = -1;
        }
        else {
          (**(type_7 **)(var_19 + -0x7fb0))(var_8,var_14,0xc);
          unaff_s4 = abStack_104;
          (**(type_7 **)(var_19 + -0x7f1c))(var_8,unaff_s4,0x40);
          (**(type_7 **)(var_19 + -0x7d8c))(var_8,var_33,local_88);
          var_28 = (uint8_t *)(**(type_7 **)(var_19 + -0x7e8c))(var_8,var_12,0x3c,&_gp);
          piStack_124 = &var_21;
          puStack_128 = &_gp;
          var_24 = (type_2)local_84 & 0xff;
          var_11 = *(int *)(var_19 + -0x7fd0) + 0x244c;
          var_9 = local_88;
          pbStack_130 = unaff_s4;
          var_17 = (uint8_t *)(**(type_7 **)(var_19 + -0x7f40))(var_8);
          if (var_17 == (uint8_t *)0xffffffff) {
            uVar7 = (**(type_7 **)(var_19 + -0x7d70))(var_8);
            var_26 = (**(type_7 **)(var_19 + -0x7ee8))(uVar7);
          }
          else if (var_17 == (uint8_t *)0xfffffffe) {
            if (var_21 - 5U < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              var_26 = (*(type_7 *)(var_19 +
                                 *(int *)(*(int *)(var_19 + -0x7fd0) + 0x250c +
                                         (var_21 - 5U) * 4)))();
              return var_26;
            }
            var_26 = -1;
          }
          else {
            var_11 = *(int *)(var_19 + -0x7fd0);
            if ((int)var_17 < 4) {
              var_26 = 0;
            }
            else {
              puStack_114 = (uint8_t *)*var_33;
              var_12 = puStack_114;
              if ((int)puStack_114 < 0) {
                var_12 = (uint8_t *)0x0;
              }
              if ((int)var_17 <= (int)var_12) {
                var_12 = var_17;
              }
              (**(type_7 **)(var_19 + -0x7f24))
                        (*(int *)(var_19 + -0x7fd0) + 0x1b3c,(uint8_t *)(var_11 + 0x244c));
              (**(type_7 **)(var_19 + -0x7f24))(*(int *)(var_19 + -0x7fd0) + 0x2e44);
              var_28 = (uint8_t *)0x0;
              var_11 = (int)var_12;
              (**(type_7 **)(var_19 + -0x7f74))(var_33);
              var_26 = 0;
            }
          }
          (**(type_7 **)(var_19 + -0x7ea4))(var_8);
          var_2 = (int)var_12;
        }
      }
      else {
        (**(type_7 **)(var_13 + 0x29a14))(*(int *)(var_13 + 0x29968) + 0x243c);
        var_26 = -1;
        var_11 = (int)var_17;
      }
    }
    else {
      var_12 = var_9;
      (**(type_7 **)(var_13 + 0x29a14))(*(int *)(var_13 + 0x29968) + 0x2424);
      var_26 = -1;
      var_11 = (int)var_9;
      var_9 = var_12;
    }
  }
  else {
    (**(type_7 **)(var_13 + 0x29a14))(*(int *)(var_13 + 0x29968) + 0x2408);
    var_26 = -1;
  }
  if (var_22 == **(int **)(var_19 + -0x7dc0)) {
    return var_26;
  }
  var_23 = *(type_7 **)(var_19 + -0x7df4);
  pcVar20 = sg_ll_set_streaming;
  var_30 = var_22;
  (*var_23)();
  var_15 = var_24;
  var_25 = var_23 + 0x314e8;
  puStack_158 = var_33;
  var_32 = (type_4 *)**(type_4 **)(var_23 + 0x29728);
  var_27[0] = 0xb6;
  var_27[1] = 0;
  var_27[2] = 0;
  var_27[3] = 0;
  var_27[4] = 0;
  var_27[5] = 0;
  var_27[6] = 0;
  var_27[7] = 0;
  var_27[0xb] = 0;
  var_27[8] = (type_6)var_11;
  var_31 = var_1((short)var_9,var_31._2_2_);
  var_27[9] = (type_6)((type_2)var_9 >> 8);
  var_27[10] = (type_6)var_9;
  psStack_160 = var_8;
  iStack_15c = var_26;
  puStack_154 = (uint8_t *)var_2;
  pbStack_150 = unaff_s4;
  pbStack_14c = var_20;
  pbStack_148 = var_6;
  pcStack_144 = pcVar20;
  if (var_24 != 0) {
    (**(type_7 **)(var_23 + 0x295c4))
              (*(int *)(var_23 + 0x29518) + 0x17c0,*(int *)(var_23 + 0x29518) + 0x245c);
    var_5 = var_27;
    var_26 = *(int *)(var_25 + -0x7fd4);
    do {
      var_11 = (int)*var_5;
      (**(type_7 **)(var_25 + -0x7f24))(var_26 + 0x511c);
      var_5 = var_5 + 1;
    } while (var_5 != var_27 + 0xc);
    (**(type_7 **)(var_25 + -0x7f24))(*(int *)(var_25 + -0x7fd0) + 0x29c4);
    var_26 = *(int *)(var_25 + -0x7fd0);
    if (((int)var_15 < 2) || (var_28 == (uint8_t *)0x0)) goto LAB_0002e3c0;
    var_11 = *(int *)(var_25 + -0x7fd0);
    if (var_9 != (uint8_t *)0x0) {
      (**(type_7 **)(var_25 + -0x7f24))
                (*(int *)(var_25 + -0x7fd0) + 0x1e44,(uint8_t *)(var_11 + 0x245c));
      var_11 = (int)var_9;
      (**(type_7 **)(var_25 + -0x7f74))(var_28,var_9,0xffffffff);
      var_26 = *(int *)(var_25 + -0x7fd0);
      goto LAB_0002e3c0;
    }
  }
  var_26 = *(int *)(var_25 + -0x7fd0);
LAB_0002e3c0:
  var_29 = var_7((char *)(var_26 + 0x245c));
  if (var_29 == (type_3 *)0x0) {
    var_26 = -1;
  }
  else {
    (**(type_7 **)(var_25 + -0x7fb0))(var_29,var_27,0xc);
    (**(type_7 **)(var_25 + -0x7f1c))(var_29,var_27 + 0xc,0x40);
    (**(type_7 **)(var_25 + -0x7d98))(var_29,var_28,var_9);
    uVar7 = (**(type_7 **)(var_25 + -0x7e8c))(var_29,var_30,0x3c,var_15);
    puStack_1c4 = &var_31;
    uStack_1c8 = var_15;
    uStack_1cc = (type_2)pbStack_130 & 0xff;
    var_11 = *(int *)(var_25 + -0x7fd0) + 0x245c;
    pbStack_1d0 = var_27 + 0xc;
    var_30 = (**(type_7 **)(var_25 + -0x7f40))(var_29,var_11,uVar7,0);
    if (var_30 == -1) {
      uVar7 = (**(type_7 **)(var_25 + -0x7d70))(var_29);
      var_26 = (**(type_7 **)(var_25 + -0x7ee8))(uVar7);
    }
    else {
      var_26 = 0;
      if (var_30 == -2) {
        if (var_31 < 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          var_26 = (*(var_25 +
                     *(int *)(*(int *)(var_25 + -0x7fd0) + 0x2550 + var_31 * 4)))();
          return var_26;
        }
        var_26 = -1;
      }
    }
    (**(type_7 **)(var_25 + -0x7ea4))(var_29);
  }
  if (var_32 == (type_4 *)**(type_4 **)(var_25 + -0x7dc0)) {
    return var_26;
  }
  var_23 = *(type_7 **)(var_25 + -0x7df4);
  uVar7 = 0x2e638;
  var_33 = var_32;
  (*var_23)();
  pcStack_208 = var_23 + 0x311d0;
  var_34 = (type_4 *)**(type_4 **)(var_23 + 0x29410);
  uStack_1fc = 0x20e8080;
  uStack_1f8 = 0xa0000;
  uStack_1f4 = 0;
  uStack_1f0 = 0;
  *var_33 = 0x20e8080;
  var_33[1] = 0xa0000;
  var_33[2] = 0;
  var_33[3] = 0;
  if ((uint8_t *)var_11 == (uint8_t *)0x1) {
    *(type_8 *)((int)var_33 + 2) = 0;
    *(type_8 *)((int)var_33 + 3) = 0;
    *(type_8 *)(var_33 + 1) = 0;
    *(type_8 *)((int)var_33 + 5) = 0;
    *(type_8 *)((int)var_33 + 6) = 0;
    *(type_8 *)((int)var_33 + 7) = 0;
    *(type_8 *)(var_33 + 2) = 0;
    *(type_8 *)((int)var_33 + 9) = 0;
    *(type_8 *)((int)var_33 + 10) = 0;
    *(type_8 *)((int)var_33 + 0xb) = 0;
    *(type_8 *)(var_33 + 3) = 0;
    *(type_8 *)((int)var_33 + 0xd) = 0;
    *(type_8 *)((int)var_33 + 0xe) = 0;
    *(type_8 *)((int)var_33 + 0xf) = 0;
  }
  if (var_34 == (type_4 *)**(type_4 **)(var_23 + 0x29410)) {
    return 0x10;
  }
  var_23 = *(type_7 **)(var_23 + 0x293dc);
  pcVar20 = resp_ctrl_m_pg;
  puStack_1ec = var_34;
  uStack_1e4 = uVar7;
  (*var_23)();
  pcStack_248 = var_23 + 0x310b8;
  var_33 = (type_4 *)**(int **)(var_23 + 0x292f8);
  var_30 = *(int *)(var_23 + 0x290d4);
  uVar11 = *(type_4 *)(var_30 + 0x7700);
  uVar7 = *(type_4 *)(var_30 + 0x7704);
  *var_34 = *(type_4 *)(var_30 + 0x76fc);
  var_34[1] = uVar11;
  var_34[2] = uVar7;
  if ((uint8_t *)var_11 == (uint8_t *)0x1) {
    uStack_23c = 0x6000000;
    uStack_238 = 0;
    uStack_234 = 0;
    uStack_233 = 0;
    *(type_4 *)((int)var_34 + 2) = 0x6000000;
    *(type_4 *)((int)var_34 + 6) = 0;
    *(type_8 *)((int)var_34 + 10) = 0;
    *(type_8 *)((int)var_34 + 0xb) = 0;
  }
  else if ((uint8_t *)var_11 == (uint8_t *)0x2) {
    puStack_230 = (uint8_t *)0xa0a0200;
    uStack_22c = 0;
    uStack_228 = 0x24b;
    *var_34 = 0xa0a0200;
    var_34[1] = 0;
    var_34[2] = 0x24b;
    var_11 = (int)puStack_230;
  }
  if (var_33 == (type_4 *)**(int **)(var_23 + 0x292f8)) {
    return 0xc;
  }
  var_23 = *(type_7 **)(var_23 + 0x292c4);
  pcVar21 = resp_ctrl_ext_m_pg;
  puStack_224 = var_33;
  pcStack_21c = pcVar20;
  (*var_23)();
  var_39 = (type_4 *)**(type_4 **)(var_23 + 0x291b8);
  psStack_264 = var_29;
  iStack_260 = var_26;
  pcStack_25c = pcVar21;
  (**(type_7 **)(var_23 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);
  var_26 = *(int *)(var_23 + 0x28f94);
  uVar16 = *(type_4 *)(var_26 + 0x76e0);
  uVar15 = *(type_4 *)(var_26 + 0x76e4);
  uVar14 = *(type_4 *)(var_26 + 0x76e8);
  var_40 = *(int *)(var_26 + 0x76ec);
  uVar12 = *(type_4 *)(var_26 + 0x76f0);
  uVar11 = *(type_4 *)(var_26 + 0x76f4);
  uVar7 = *(type_4 *)(var_26 + 0x76f8);
  *var_33 = *(type_4 *)(var_26 + 0x76dc);
  var_33[1] = uVar16;
  var_33[2] = uVar15;
  var_33[3] = uVar14;
  var_33[4] = var_40;
  var_33[5] = uVar12;
  var_33[6] = uVar11;
  var_33[7] = uVar7;
  if ((uint8_t *)var_11 == (uint8_t *)0x1) {
    var_40 = 0;
    var_33[1] = 0;
    var_33[2] = 0;
    var_33[3] = 0;
    var_33[4] = 0;
    var_33[5] = 0;
    var_33[6] = 0;
    var_33[7] = 0;
  }
  else if ((uint8_t *)var_11 == (uint8_t *)0x2) {
    uStack_28c = var_35(0x4a,var_36(1,uStack_28c._2_2_));
    uStack_28c = var_37(uStack_28c._0_3_,0x1c);
    uStack_288._2_2_ = var_38(0x40,(type_8)uStack_288);
    *var_33 = uStack_28c;
    var_33[1] = uStack_288;
    var_33[2] = uStack_284;
    var_33[3] = uStack_280;
    var_33[4] = iStack_27c;
    var_33[5] = uStack_278;
    var_33[6] = uStack_274;
    var_33[7] = uStack_270;
    var_40 = iStack_27c;
  }
  if (var_39 == (type_4 *)**(type_4 **)(var_23 + 0x291b8)) {
    return 0x20;
  }
  var_23 = *(type_7 **)(var_23 + 0x29184);
  var_33 = var_39;
  (*var_23)();
  var_34 = (type_4 *)**(type_4 **)(var_23 + 0x28fc4);
  var_26 = *(int *)(var_23 + 0x28da0);
  uVar11 = *(type_4 *)(var_26 + 0x76d4);
  uVar7 = *(type_4 *)(var_26 + 0x76d8);
  *var_33 = *(type_4 *)(var_26 + 0x76d0);
  var_33[1] = uVar11;
  var_33[2] = uVar7;
  if (var_40 == 1) {
    *(type_4 *)((int)var_33 + 2) = 0x40f0000;
    *(type_4 *)((int)var_33 + 6) = 0;
    *(type_8 *)((int)var_33 + 10) = 0;
    *(type_8 *)((int)var_33 + 0xb) = 0;
  }
  else if (var_40 == 2) {
    var_40 = 0x1c0a0800;
    *var_33 = 0x1c0a0800;
    var_33[1] = 0;
    var_33[2] = 0;
  }
  if (var_34 == (type_4 *)**(type_4 **)(var_23 + 0x28fc4)) {
    return 0xc;
  }
  var_23 = *(type_7 **)(var_23 + 0x28f90);
  (*var_23)();
  var_26 = **(int **)(var_23 + 0x28e80);
  var_30 = *(int *)(var_23 + 0x28c5c);
  uVar11 = *(type_4 *)(var_30 + 0x76c4);
  uVar7 = *(type_4 *)(var_30 + 0x76c8);
  *var_34 = *(type_4 *)(var_30 + 0x76c0);
  var_34[1] = uVar11;
  var_34[2] = uVar7;
  *(type_8 *)(var_34 + 3) = *(type_8 *)(var_30 + 0x76cc);
  *(type_8 *)((int)var_34 + 0xd) = *(type_8 *)(var_30 + 0x76cd);
  *(type_8 *)((int)var_34 + 0xe) = *(type_8 *)(var_30 + 0x76ce);
  if (var_40 == 1) {
    *(type_4 *)((int)var_34 + 2) = 0xff000000;
    *(type_4 *)((int)var_34 + 6) = 0;
    *(type_4 *)((int)var_34 + 10) = 0;
    *(type_8 *)((int)var_34 + 0xe) = 0;
    *(type_8 *)((int)var_34 + 0xf) = 0;
  }
  else if (var_40 == 2) {
    *var_34 = 0xe0000;
    var_34[1] = 0;
    var_34[2] = 0;
    var_34[3] = 0;
  }
  if (var_26 == **(int **)(var_23 + 0x28e80)) {
    return 0xf;
  }
  var_23 = *(type_7 **)(var_23 + 0x28e4c);
  (*var_23)();
  return *(int *)(var_23 + 0x28ae8) + 0x25b0;
}


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

/* WARNING: Removing unreachable block (ram,0x0002e220) */
/* WARNING: Removing unreachable block (ram,0x0002e278) */
/* WARNING: Removing unreachable block (ram,0x0002e228) */
/* WARNING: Removing unreachable block (ram,0x0002e230) */
/* WARNING: Removing unreachable block (ram,0x0002e254) */
/* WARNING: Removing unreachable block (ram,0x0002e258) */
/* WARNING: Removing unreachable block (ram,0x0002df94) */
/* WARNING: Removing unreachable block (ram,0x0002e2c4) */

int MASKED(byte *param_1,byte *param_2,byte *param_3,byte *param_4,byte *param_5,
                    byte param_6,byte *param_7)

{
  byte *pbVar1;
  uint uVar2;
  byte *pbVar3;
  byte *pbVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  byte *pbVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined *puVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  int unaff_s0;
  int iVar16;
  int iVar17;
  byte *unaff_s2;
  byte *unaff_s4;
  byte *unaff_s5;
  byte *unaff_s6;
  code *pcVar18;
  code *pcVar19;
  code *pcVar20;
  int iStack_2d8;
  undefined4 uStack_28c;
  undefined4 uStack_288;
  undefined4 uStack_284;
  undefined4 uStack_280;
  int iStack_27c;
  undefined4 uStack_278;
  undefined4 uStack_274;
  undefined4 uStack_270;
  undefined4 *puStack_26c;
  int iStack_264;
  int iStack_260;
  code *pcStack_25c;
  code *pcStack_248;
  undefined4 uStack_23c;
  undefined4 uStack_238;
  undefined1 uStack_234;
  undefined1 uStack_233;
  byte *pbStack_230;
  undefined4 uStack_22c;
  undefined4 uStack_228;
  undefined4 *puStack_224;
  code *pcStack_21c;
  code *pcStack_208;
  undefined4 uStack_1fc;
  undefined4 uStack_1f8;
  undefined4 uStack_1f4;
  undefined4 uStack_1f0;
  undefined4 *puStack_1ec;
  undefined4 uStack_1e4;
  byte *pbStack_1d0;
  uint uStack_1cc;
  uint uStack_1c8;
  uint *puStack_1c4;
  code *pcStack_1c0;
  uint uStack_1b4;
  byte abStack_1b0 [76];
  undefined4 *puStack_164;
  int iStack_160;
  int iStack_15c;
  undefined4 *puStack_158;
  byte *pbStack_154;
  byte *pbStack_150;
  byte *pbStack_14c;
  byte *pbStack_148;
  code *pcStack_144;
  byte *pbStack_130;
  uint uStack_12c;
  undefined1 *puStack_128;
  int *piStack_124;
  undefined *puStack_120;
  int iStack_118;
  byte *pbStack_114;
  byte abStack_110 [2];
  undefined1 auStack_10e [4];
  undefined1 uStack_10a;
  undefined1 uStack_109;
  undefined2 uStack_108;
  undefined1 uStack_106;
  undefined1 uStack_105;
  byte abStack_104 [64];
  int iStack_c4;
  int iStack_bc;
  int iStack_b8;
  byte *pbStack_b4;
  byte *pbStack_b0;
  byte *pbStack_ac;
  byte *pbStack_a8;
  code *pcStack_a4;
  byte *local_90;
  undefined4 *local_8c;
  byte *local_88;
  int *local_84;
  int local_78;
  byte *local_74;
  byte local_70 [2];
  undefined2 local_6e;
  undefined1 local_6c;
  undefined1 local_6b;
  undefined1 local_6a;
  undefined1 local_69;
  undefined1 local_68;
  undefined1 local_67;
  byte abStack_66 [2];
  byte abStack_64 [64];
  byte *local_24;
  
  local_24 = *(byte **)PTR___stack_chk_guard_00057a50;
  local_70[0] = 0x46;
  local_70[1] = 0;
  local_6e = 0;
  local_6c = 0;
  local_6b = 0;
  local_6a = 0;
  local_69 = 0;
  local_68 = 0;
  local_67 = 0;
  if (param_2 < (byte *)0x4) {
    local_70[1] = (byte)param_2;
    pbVar3 = param_4;
    unaff_s4 = param_4;
    unaff_s5 = param_1;
    if (param_3 < (byte *)0x10000) {
      local_6e = SUB42(param_3,0);
      if (param_5 < (byte *)0x10000) {
        local_74 = (byte *)CONCAT22((short)param_5,local_74._2_2_);
        local_69 = (undefined1)((uint)param_5 >> 8);
        local_68 = SUB41(param_5,0);
        if (param_7 != (byte *)0x0) {
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x17c0,PTR_s__00057840 + 0x23e0);
          pbVar4 = local_70;
          unaff_s6 = abStack_66;
          unaff_s2 = PTR_LAB_0005783c + 0x511c;
          do {
            param_2 = (byte *)(uint)*pbVar4;
            (*(code *)PTR_pr2ws_000578ec)(unaff_s2);
            pbVar4 = pbVar4 + 1;
          } while (pbVar4 != unaff_s6);
          (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x29c4);
        }
        unaff_s0 = FUN_0002d790(PTR_s__00057840 + 0x23e0);
        if (unaff_s0 == 0) {
          iVar16 = -1;
        }
        else {
          (*(code *)PTR_set_scsi_pt_cdb_00057860)(unaff_s0,local_70,10);
          unaff_s2 = abStack_64;
          (*(code *)PTR_set_scsi_pt_sense_000578f4)(unaff_s0,unaff_s2,0x40);
          (*(code *)PTR_set_scsi_pt_data_in_00057a84)(unaff_s0,param_4,param_5);
          param_3 = (byte *)(*(code *)PTR_do_scsi_pt_00057984)(unaff_s0,param_1,0x3c,param_7);
          local_84 = &local_78;
          local_88 = param_7;
          local_8c = (undefined4 *)(uint)param_6;
          param_2 = PTR_s__00057840 + 0x23e0;
          local_90 = unaff_s2;
          pbVar3 = (byte *)(*(code *)PTR_sg_cmds_process_resp_000578d0)(unaff_s0);
          if (pbVar3 == (byte *)0xffffffff) {
            uVar5 = (*(code *)PTR_get_scsi_pt_os_err_00057aa0)(unaff_s0);
            iVar16 = (*(code *)PTR_sg_convert_errno_00057928)(uVar5);
          }
          else if (pbVar3 == (byte *)0xfffffffe) {
            if (local_78 - 5U < 0x11) {
                    /* WARNING: Could not emulate address calculation at 0x0002dd64 */
                    /* WARNING: Treating indirect jump as call */
              iVar16 = (*(code *)(&_gp_1 + *(int *)(PTR_s__00057840 + (local_78 - 5U) * 4 + 0x24c8))
                       )();
              return iVar16;
            }
            iVar16 = -1;
          }
          else if ((int)param_7 < 3) {
            iVar16 = 0;
          }
          else {
            iVar16 = 0;
            if (3 < (int)pbVar3) {
              local_74 = *(byte **)param_4;
              param_2 = local_74;
              if ((int)local_74 < 0) {
                param_2 = (byte *)0x0;
              }
              if ((int)pbVar3 <= (int)param_2) {
                param_2 = pbVar3;
              }
              (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23f4,PTR_s__00057840 + 0x23e0);
              if (param_7 == (byte *)0x3) {
                if ((int)param_2 < 0x101) {
                  puVar12 = PTR_s__00057840 + 0x17b4;
                }
                else {
                  puVar12 = PTR_s__00057840 + 0x1b00;
                }
                (*(code *)PTR_pr2ws_000578ec)(PTR_LAB_0005783c + 0x55c4,puVar12);
                param_3 = (byte *)0xffffffff;
                pbVar3 = (byte *)0x100;
                if ((int)param_2 < 0x101) {
                  pbVar3 = param_2;
                }
                (*(code *)PTR_hex2stderr_0005789c)(param_4);
                iVar16 = 0;
                param_2 = pbVar3;
              }
              else {
                (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2e44);
                param_3 = (byte *)0x0;
                (*(code *)PTR_hex2stderr_0005789c)(param_4);
                iVar16 = 0;
              }
            }
          }
          (*(code *)PTR_destruct_scsi_pt_obj_0005796c)(unaff_s0);
          pbVar3 = param_5;
        }
      }
      else {
        pbVar4 = param_3;
        (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23c8);
        iVar16 = -1;
        param_2 = param_3;
        param_3 = pbVar4;
      }
    }
    else {
      pbVar4 = param_3;
      (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x23a4);
      iVar16 = -1;
      param_2 = param_3;
      param_3 = pbVar4;
    }
  }
  else {
    (*(code *)PTR_pr2ws_000578ec)(PTR_s__00057840 + 0x2390);
    iVar16 = -1;
    pbVar3 = param_4;
  }
  if (local_24 == *(byte **)PTR___stack_chk_guard_00057a50) {
    return iVar16;
  }
  pcVar18 = sg_ll_get_performance;
  pbVar9 = local_24;
  puVar12 = PTR___stack_chk_fail_00057a1c;
  (*(code *)PTR___stack_chk_fail_00057a1c)();
  puVar8 = local_8c;
  pbVar4 = local_90;
  puStack_120 = puVar12 + 0x31938;
  pcStack_a4 = pcVar18;
  pbStack_a8 = unaff_s5;
  pbStack_ac = unaff_s4;
  pbStack_b0 = param_7;
  pbStack_b4 = unaff_s2;
  iStack_b8 = iVar16;
  iStack_bc = unaff_s0;
  iStack_c4 = **(int **)(puVar12 + 0x29b78);
  abStack_110[0] = 0xac;
  abStack_110[1] = 0;
  auStack_10e[0] = 0;
  auStack_10e[1] = 0;
  auStack_10e[2] = 0;
  auStack_10e[3] = 0;
  uStack_10a = 0;
  uStack_109 = 0;
  uStack_108 = 0;
  uStack_106 = 0;
  uStack_105 = 0;
  if (param_2 < (byte *)0x20) {
    abStack_110[1] = (char)param_2;
    pbVar1 = abStack_110 + 2;
    uVar2 = (uint)pbVar1 & 3;
    *(uint *)(pbVar1 + -uVar2) =
         *(uint *)(pbVar1 + -uVar2) & -1 << (4 - uVar2) * 8 | (uint)param_3 >> uVar2 * 8;
    pbVar1 = abStack_110 + 5;
    uVar2 = (uint)pbVar1 & 3;
    *(uint *)(pbVar1 + -uVar2) =
         *(uint *)(pbVar1 + -uVar2) & 0xffffffffU >> (uVar2 + 1) * 8 |
         (int)param_3 << (3 - uVar2) * 8;
    param_7 = pbVar9;
    pbStack_114 = param_3;
    if (pbVar3 < (byte *)0x10000) {
      uStack_108 = SUB42(pbVar3,0);
      if (pbVar4 < (byte *)0x100) {
        uStack_106 = SUB41(pbVar4,0);
        (**(code **)(puVar12 + 0x29a14))
                  (*(int *)(puVar12 + 0x29968) + 0x17c0,*(int *)(puVar12 + 0x29968) + 0x244c);
        pbVar4 = abStack_110;
        unaff_s5 = abStack_104;
        unaff_s4 = (byte *)(*(int *)(puStack_120 + -0x7fd4) + 0x511c);
        do {
          param_2 = (byte *)(uint)*pbVar4;
          (**(code **)(puStack_120 + -0x7f24))(unaff_s4);
          pbVar4 = pbVar4 + 1;
        } while (pbVar4 != unaff_s5);
        (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x29c4);
        unaff_s0 = FUN_0002d790(*(int *)(puStack_120 + -0x7fd0) + 0x244c);
        if (unaff_s0 == 0) {
          iVar16 = -1;
        }
        else {
          (**(code **)(puStack_120 + -0x7fb0))(unaff_s0,abStack_110,0xc);
          unaff_s4 = abStack_104;
          (**(code **)(puStack_120 + -0x7f1c))(unaff_s0,unaff_s4,0x40);
          (**(code **)(puStack_120 + -0x7d8c))(unaff_s0,puVar8,local_88);
          param_3 = (byte *)(**(code **)(puStack_120 + -0x7e8c))(unaff_s0,pbVar9,0x3c,&_gp_1);
          piStack_124 = &iStack_118;
          puStack_128 = &_gp_1;
          uStack_12c = (uint)local_84 & 0xff;
          param_2 = (byte *)(*(int *)(puStack_120 + -0x7fd0) + 0x244c);
          pbVar3 = local_88;
          pbStack_130 = unaff_s4;
          pbVar4 = (byte *)(**(code **)(puStack_120 + -0x7f40))(unaff_s0);
          if (pbVar4 == (byte *)0xffffffff) {
            uVar5 = (**(code **)(puStack_120 + -0x7d70))(unaff_s0);
            iVar16 = (**(code **)(puStack_120 + -0x7ee8))(uVar5);
          }
          else if (pbVar4 == (byte *)0xfffffffe) {
            if (iStack_118 - 5U < 0x11) {
                    /* WARNING: Could not recover jumptable at 0x0002e1c8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar16 = (*(code *)(puStack_120 +
                                 *(int *)(*(int *)(puStack_120 + -0x7fd0) + 0x250c +
                                         (iStack_118 - 5U) * 4)))();
              return iVar16;
            }
            iVar16 = -1;
          }
          else {
            param_2 = *(byte **)(puStack_120 + -0x7fd0);
            if ((int)pbVar4 < 4) {
              iVar16 = 0;
            }
            else {
              pbStack_114 = (byte *)*puVar8;
              pbVar9 = pbStack_114;
              if ((int)pbStack_114 < 0) {
                pbVar9 = (byte *)0x0;
              }
              if ((int)pbVar4 <= (int)pbVar9) {
                pbVar9 = pbVar4;
              }
              (**(code **)(puStack_120 + -0x7f24))
                        (*(int *)(puStack_120 + -0x7fd0) + 0x1b3c,param_2 + 0x244c);
              (**(code **)(puStack_120 + -0x7f24))(*(int *)(puStack_120 + -0x7fd0) + 0x2e44);
              param_3 = (byte *)0x0;
              param_2 = pbVar9;
              (**(code **)(puStack_120 + -0x7f74))(puVar8);
              iVar16 = 0;
            }
          }
          (**(code **)(puStack_120 + -0x7ea4))(unaff_s0);
          param_7 = pbVar9;
        }
      }
      else {
        (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x243c);
        iVar16 = -1;
        param_2 = pbVar4;
      }
    }
    else {
      pbVar4 = pbVar3;
      (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2424);
      iVar16 = -1;
      param_2 = pbVar3;
      pbVar3 = pbVar4;
    }
  }
  else {
    (**(code **)(puVar12 + 0x29a14))(*(int *)(puVar12 + 0x29968) + 0x2408);
    iVar16 = -1;
  }
  if (iStack_c4 == **(int **)(puStack_120 + -0x7dc0)) {
    return iVar16;
  }
  pcVar18 = *(code **)(puStack_120 + -0x7df4);
  pcVar19 = sg_ll_set_streaming;
  iVar17 = iStack_c4;
  (*pcVar18)();
  uVar2 = uStack_12c;
  pcStack_1c0 = pcVar18 + 0x314e8;
  puStack_158 = puVar8;
  puStack_164 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29728);
  abStack_1b0[0] = 0xb6;
  abStack_1b0[1] = 0;
  abStack_1b0[2] = 0;
  abStack_1b0[3] = 0;
  abStack_1b0[4] = 0;
  abStack_1b0[5] = 0;
  abStack_1b0[6] = 0;
  abStack_1b0[7] = 0;
  abStack_1b0[0xb] = 0;
  abStack_1b0[8] = (byte)param_2;
  uStack_1b4 = CONCAT22((short)pbVar3,uStack_1b4._2_2_);
  abStack_1b0[9] = (byte)((uint)pbVar3 >> 8);
  abStack_1b0[10] = (byte)pbVar3;
  iStack_160 = unaff_s0;
  iStack_15c = iVar16;
  pbStack_154 = param_7;
  pbStack_150 = unaff_s4;
  pbStack_14c = unaff_s5;
  pbStack_148 = unaff_s6;
  pcStack_144 = pcVar19;
  if (uStack_12c != 0) {
    (**(code **)(pcVar18 + 0x295c4))
              (*(int *)(pcVar18 + 0x29518) + 0x17c0,*(int *)(pcVar18 + 0x29518) + 0x245c);
    pbVar4 = abStack_1b0;
    iVar16 = *(int *)(pcStack_1c0 + -0x7fd4);
    do {
      param_2 = (byte *)(uint)*pbVar4;
      (**(code **)(pcStack_1c0 + -0x7f24))(iVar16 + 0x511c);
      pbVar4 = pbVar4 + 1;
    } while (pbVar4 != abStack_1b0 + 0xc);
    (**(code **)(pcStack_1c0 + -0x7f24))(*(int *)(pcStack_1c0 + -0x7fd0) + 0x29c4);
    iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
    if (((int)uVar2 < 2) || (param_3 == (byte *)0x0)) goto LAB_0002e3c0;
    param_2 = *(byte **)(pcStack_1c0 + -0x7fd0);
    if (pbVar3 != (byte *)0x0) {
      (**(code **)(pcStack_1c0 + -0x7f24))
                (*(int *)(pcStack_1c0 + -0x7fd0) + 0x1e44,param_2 + 0x245c);
      param_2 = pbVar3;
      (**(code **)(pcStack_1c0 + -0x7f74))(param_3,pbVar3,0xffffffff);
      iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
      goto LAB_0002e3c0;
    }
  }
  iVar16 = *(int *)(pcStack_1c0 + -0x7fd0);
LAB_0002e3c0:
  iVar16 = FUN_0002d790(iVar16 + 0x245c);
  if (iVar16 == 0) {
    iVar17 = -1;
  }
  else {
    (**(code **)(pcStack_1c0 + -0x7fb0))(iVar16,abStack_1b0,0xc);
    (**(code **)(pcStack_1c0 + -0x7f1c))(iVar16,abStack_1b0 + 0xc,0x40);
    (**(code **)(pcStack_1c0 + -0x7d98))(iVar16,param_3,pbVar3);
    uVar5 = (**(code **)(pcStack_1c0 + -0x7e8c))(iVar16,iVar17,0x3c,uVar2);
    puStack_1c4 = &uStack_1b4;
    uStack_1c8 = uVar2;
    uStack_1cc = (uint)pbStack_130 & 0xff;
    param_2 = (byte *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x245c);
    pbStack_1d0 = abStack_1b0 + 0xc;
    iVar6 = (**(code **)(pcStack_1c0 + -0x7f40))(iVar16,param_2,uVar5,0);
    if (iVar6 == -1) {
      uVar5 = (**(code **)(pcStack_1c0 + -0x7d70))(iVar16);
      iVar17 = (**(code **)(pcStack_1c0 + -0x7ee8))(uVar5);
    }
    else {
      iVar17 = 0;
      if (iVar6 == -2) {
        if (uStack_1b4 < 0x16) {
                    /* WARNING: Could not recover jumptable at 0x0002e60c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          iVar16 = (*(pcStack_1c0 +
                     *(int *)(*(int *)(pcStack_1c0 + -0x7fd0) + 0x2550 + uStack_1b4 * 4)))();
          return iVar16;
        }
        iVar17 = -1;
      }
    }
    (**(code **)(pcStack_1c0 + -0x7ea4))(iVar16);
  }
  if (puStack_164 == (undefined4 *)**(undefined4 **)(pcStack_1c0 + -0x7dc0)) {
    return iVar17;
  }
  pcVar18 = *(code **)(pcStack_1c0 + -0x7df4);
  uVar5 = 0x2e638;
  puVar8 = puStack_164;
  (*pcVar18)();
  pcStack_208 = pcVar18 + 0x311d0;
  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410);
  uStack_1fc = 0x20e8080;
  uStack_1f8 = 0xa0000;
  uStack_1f4 = 0;
  uStack_1f0 = 0;
  *puVar8 = 0x20e8080;
  puVar8[1] = 0xa0000;
  puVar8[2] = 0;
  puVar8[3] = 0;
  if (param_2 == (byte *)0x1) {
    *(undefined1 *)((int)puVar8 + 2) = 0;
    *(undefined1 *)((int)puVar8 + 3) = 0;
    *(undefined1 *)(puVar8 + 1) = 0;
    *(undefined1 *)((int)puVar8 + 5) = 0;
    *(undefined1 *)((int)puVar8 + 6) = 0;
    *(undefined1 *)((int)puVar8 + 7) = 0;
    *(undefined1 *)(puVar8 + 2) = 0;
    *(undefined1 *)((int)puVar8 + 9) = 0;
    *(undefined1 *)((int)puVar8 + 10) = 0;
    *(undefined1 *)((int)puVar8 + 0xb) = 0;
    *(undefined1 *)(puVar8 + 3) = 0;
    *(undefined1 *)((int)puVar8 + 0xd) = 0;
    *(undefined1 *)((int)puVar8 + 0xe) = 0;
    *(undefined1 *)((int)puVar8 + 0xf) = 0;
  }
  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x29410)) {
    return 0x10;
  }
  pcVar18 = *(code **)(pcVar18 + 0x293dc);
  pcVar19 = FUN_0002e758;
  puStack_1ec = puVar7;
  uStack_1e4 = uVar5;
  (*pcVar18)();
  pcStack_248 = pcVar18 + 0x310b8;
  puVar8 = (undefined4 *)**(int **)(pcVar18 + 0x292f8);
  iVar6 = *(int *)(pcVar18 + 0x290d4);
  uVar10 = *(undefined4 *)(iVar6 + 0x7700);
  uVar5 = *(undefined4 *)(iVar6 + 0x7704);
  *puVar7 = *(undefined4 *)(iVar6 + 0x76fc);
  puVar7[1] = uVar10;
  puVar7[2] = uVar5;
  if (param_2 == (byte *)0x1) {
    uStack_23c = 0x6000000;
    uStack_238 = 0;
    uStack_234 = 0;
    uStack_233 = 0;
    *(undefined4 *)((int)puVar7 + 2) = 0x6000000;
    *(undefined4 *)((int)puVar7 + 6) = 0;
    *(undefined1 *)((int)puVar7 + 10) = 0;
    *(undefined1 *)((int)puVar7 + 0xb) = 0;
  }
  else if (param_2 == (byte *)0x2) {
    pbStack_230 = (byte *)0xa0a0200;
    uStack_22c = 0;
    uStack_228 = 0x24b;
    *puVar7 = 0xa0a0200;
    puVar7[1] = 0;
    puVar7[2] = 0x24b;
    param_2 = pbStack_230;
  }
  if (puVar8 == (undefined4 *)**(int **)(pcVar18 + 0x292f8)) {
    return 0xc;
  }
  pcVar18 = *(code **)(pcVar18 + 0x292c4);
  pcVar20 = FUN_0002e898;
  puStack_224 = puVar8;
  pcStack_21c = pcVar19;
  (*pcVar18)();
  puStack_26c = (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8);
  iStack_264 = iVar16;
  iStack_260 = iVar17;
  pcStack_25c = pcVar20;
  (**(code **)(pcVar18 + 0x290d0))((int)&uStack_28c + 2,0,0x1e);
  iVar16 = *(int *)(pcVar18 + 0x28f94);
  uVar15 = *(undefined4 *)(iVar16 + 0x76e0);
  uVar14 = *(undefined4 *)(iVar16 + 0x76e4);
  uVar13 = *(undefined4 *)(iVar16 + 0x76e8);
  iStack_2d8 = *(int *)(iVar16 + 0x76ec);
  uVar11 = *(undefined4 *)(iVar16 + 0x76f0);
  uVar10 = *(undefined4 *)(iVar16 + 0x76f4);
  uVar5 = *(undefined4 *)(iVar16 + 0x76f8);
  *puVar8 = *(undefined4 *)(iVar16 + 0x76dc);
  puVar8[1] = uVar15;
  puVar8[2] = uVar14;
  puVar8[3] = uVar13;
  puVar8[4] = iStack_2d8;
  puVar8[5] = uVar11;
  puVar8[6] = uVar10;
  puVar8[7] = uVar5;
  if (param_2 == (byte *)0x1) {
    iStack_2d8 = 0;
    puVar8[1] = 0;
    puVar8[2] = 0;
    puVar8[3] = 0;
    puVar8[4] = 0;
    puVar8[5] = 0;
    puVar8[6] = 0;
    puVar8[7] = 0;
  }
  else if (param_2 == (byte *)0x2) {
    uStack_28c = CONCAT13(0x4a,CONCAT12(1,uStack_28c._2_2_));
    uStack_28c = CONCAT31(uStack_28c._0_3_,0x1c);
    uStack_288._2_2_ = CONCAT11(0x40,(undefined1)uStack_288);
    *puVar8 = uStack_28c;
    puVar8[1] = uStack_288;
    puVar8[2] = uStack_284;
    puVar8[3] = uStack_280;
    puVar8[4] = iStack_27c;
    puVar8[5] = uStack_278;
    puVar8[6] = uStack_274;
    puVar8[7] = uStack_270;
    iStack_2d8 = iStack_27c;
  }
  if (puStack_26c == (undefined4 *)**(undefined4 **)(pcVar18 + 0x291b8)) {
    return 0x20;
  }
  pcVar18 = *(code **)(pcVar18 + 0x29184);
  puVar8 = puStack_26c;
  (*pcVar18)();
  puVar7 = (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4);
  iVar16 = *(int *)(pcVar18 + 0x28da0);
  uVar10 = *(undefined4 *)(iVar16 + 0x76d4);
  uVar5 = *(undefined4 *)(iVar16 + 0x76d8);
  *puVar8 = *(undefined4 *)(iVar16 + 0x76d0);
  puVar8[1] = uVar10;
  puVar8[2] = uVar5;
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar8 + 2) = 0x40f0000;
    *(undefined4 *)((int)puVar8 + 6) = 0;
    *(undefined1 *)((int)puVar8 + 10) = 0;
    *(undefined1 *)((int)puVar8 + 0xb) = 0;
  }
  else if (iStack_2d8 == 2) {
    iStack_2d8 = 0x1c0a0800;
    *puVar8 = 0x1c0a0800;
    puVar8[1] = 0;
    puVar8[2] = 0;
  }
  if (puVar7 == (undefined4 *)**(undefined4 **)(pcVar18 + 0x28fc4)) {
    return 0xc;
  }
  pcVar18 = *(code **)(pcVar18 + 0x28f90);
  (*pcVar18)();
  iVar16 = **(int **)(pcVar18 + 0x28e80);
  iVar17 = *(int *)(pcVar18 + 0x28c5c);
  uVar10 = *(undefined4 *)(iVar17 + 0x76c4);
  uVar5 = *(undefined4 *)(iVar17 + 0x76c8);
  *puVar7 = *(undefined4 *)(iVar17 + 0x76c0);
  puVar7[1] = uVar10;
  puVar7[2] = uVar5;
  *(undefined1 *)(puVar7 + 3) = *(undefined1 *)(iVar17 + 0x76cc);
  *(undefined1 *)((int)puVar7 + 0xd) = *(undefined1 *)(iVar17 + 0x76cd);
  *(undefined1 *)((int)puVar7 + 0xe) = *(undefined1 *)(iVar17 + 0x76ce);
  if (iStack_2d8 == 1) {
    *(undefined4 *)((int)puVar7 + 2) = 0xff000000;
    *(undefined4 *)((int)puVar7 + 6) = 0;
    *(undefined4 *)((int)puVar7 + 10) = 0;
    *(undefined1 *)((int)puVar7 + 0xe) = 0;
    *(undefined1 *)((int)puVar7 + 0xf) = 0;
  }
  else if (iStack_2d8 == 2) {
    *puVar7 = 0xe0000;
    puVar7[1] = 0;
    puVar7[2] = 0;
    puVar7[3] = 0;
  }
  if (iVar16 == **(int **)(pcVar18 + 0x28e80)) {
    return 0xf;
  }
  pcVar18 = *(code **)(pcVar18 + 0x28e4c);
  (*pcVar18)();
  return *(int *)(pcVar18 + 0x28ae8) + 0x25b0;
}

