
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int sg_make_vpd_devid_for_nvme
              (uint8_t *nvme_id_ctl_p,uint8_t *nvme_id_ns_p,int pdt,int tproto,uint8_t *dop,
              int max_do_len)

{
  uint8_t *puVar1;
  int iVar2;
  undefined4 uVar3;
  _Bool _Var4;
  _Bool _Var5;
  int iVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  int in_GS_OFFSET;
  uint local_38;
  char b [4];
  
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  if ((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)) {
LAB_0002a65f:
    uVar9 = 0;
  }
  else {
    memset(dop,0,max_do_len);
    dop[1] = 0x83;
    *dop = (byte)pdt & 0x1f;
    if (tproto < 0) {
      dop[4] = '\x02';
      dop[5] = '!';
    }
    else {
      dop[5] = 0xa1;
      dop[4] = (byte)(tproto << 4) | 2;
    }
    dop[8] = 'N';
    dop[9] = 'V';
    dop[10] = 'M';
    dop[0xb] = 'e';
    iVar6 = 0x28;
    dop[0xc] = ' ';
    dop[0xd] = ' ';
    dop[0xe] = ' ';
    dop[0xf] = ' ';
    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);
    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);
    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);
    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);
    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);
    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);
    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);
    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);
    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);
    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);
    do {
      if (dop[iVar6 + 0xf] != ' ') {
        if (iVar6 == 0x28) {
          local_38 = 0x38;
          iVar8 = 0x4b;
        }
        else {
          iVar8 = iVar6 + 0x24;
          local_38 = iVar6 + 0x11;
        }
        if (iVar8 < max_do_len) goto LAB_0002a742;
        goto LAB_0002a65f;
      }
      dop[iVar6 + 0xf] = '_';
      iVar6 = iVar6 + -1;
    } while (iVar6 != 0);
    local_38 = 0x11;
LAB_0002a742:
    puVar1 = dop + local_38;
    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);
    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);
    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);
    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);
    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);
    uVar7 = local_38 + 0x14;
    do {
      uVar9 = uVar7;
      if (dop[uVar7 - 1] != ' ') break;
      dop[uVar7 - 1] = '\0';
      uVar7 = uVar7 - 1;
      uVar9 = local_38;
    } while (local_38 != uVar7);
    if ((uVar9 & 3) != 0) {
      uVar7 = ((int)uVar7 >> 2) * 4 + 4;
    }
    dop[7] = (char)uVar7 + 0xf8;
    uVar9 = uVar7;
    if (nvme_id_ns_p != (uint8_t *)0x0) {
      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);
      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);
      if (_Var4) {
        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {
          dop[uVar7] = '\x01';
          dop[uVar7 + 1] = '\x02';
          dop[uVar7 + 3] = '\b';
          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);
          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);
          *(undefined4 *)(dop + uVar7 + 8) = uVar3;
          uVar9 = uVar7 + 0xc;
          if ((int)(uVar7 + 0x23) < max_do_len) {
            dop[uVar7 + 0xc] = '\x03';
            dop[uVar7 + 0xd] = '\b';
            dop[uVar7 + 0xf] = '\x14';
            puVar1 = dop + uVar7 + 0x10;
            puVar1[0] = 'e';
            puVar1[1] = 'u';
            puVar1[2] = 'i';
            puVar1[3] = '.';
            iVar6 = 0;
            do {
              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);
              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;
              iVar6 = iVar6 + 1;
            } while (iVar6 != 8);
            uVar9 = uVar7 + 0x24;
          }
        }
      }
      else if ((int)(uVar7 + 0x13) < max_do_len) {
        dop[uVar7] = '\x01';
        dop[uVar7 + 1] = '\x02';
        dop[uVar7 + 3] = '\x10';
        puVar1 = dop + uVar7 + 4;
        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);
        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);
        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);
        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);
        uVar9 = uVar7 + 0x14;
        if ((int)(uVar7 + 0x3b) < max_do_len) {
          dop[uVar7 + 0x14] = '\x03';
          dop[uVar7 + 0x15] = '\b';
          dop[uVar7 + 0x17] = '$';
          puVar1 = dop + uVar7 + 0x18;
          puVar1[0] = 'e';
          puVar1[1] = 'u';
          puVar1[2] = 'i';
          puVar1[3] = '.';
          iVar6 = 0;
          do {
            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);
            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;
            iVar6 = iVar6 + 1;
          } while (iVar6 != 0x10);
          uVar9 = uVar7 + 0x3c;
        }
      }
    }
  }
  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return uVar9;
}



uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)

{
  byte *pbVar1;
  undefined4 uVar2;
  char cVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  int unaff_EBX;
  uint uVar8;
  int in_GS_OFFSET;
  int unaff_retaddr;
  uint local_3c;
  undefined2 local_28 [2];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x2a629;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {
LAB_0002a65f:
    uVar8 = 0;
  }
  else {
    memset(param_4,0,param_5);
    param_4[1] = 0x83;
    *param_4 = param_2 & 0x1f;
    if (param_3 < 0) {
      param_4[4] = 2;
      param_4[5] = 0x21;
    }
    else {
      param_4[5] = 0xa1;
      param_4[4] = (byte)(param_3 << 4) | 2;
    }
    param_4[8] = 0x4e;
    param_4[9] = 0x56;
    param_4[10] = 0x4d;
    param_4[0xb] = 0x65;
    iVar5 = 0x28;
    param_4[0xc] = 0x20;
    param_4[0xd] = 0x20;
    param_4[0xe] = 0x20;
    param_4[0xf] = 0x20;
    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);
    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);
    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);
    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);
    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);
    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);
    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);
    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);
    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);
    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);
    do {
      if (param_4[iVar5 + 0xf] != 0x20) {
        if (iVar5 == 0x28) {
          local_3c = 0x38;
          iVar7 = 0x4b;
        }
        else {
          iVar7 = iVar5 + 0x24;
          local_3c = iVar5 + 0x11;
        }
        if (iVar7 < (int)param_5) goto LAB_0002a742;
        goto LAB_0002a65f;
      }
      param_4[iVar5 + 0xf] = 0x5f;
      iVar5 = iVar5 + -1;
    } while (iVar5 != 0);
    local_3c = 0x11;
LAB_0002a742:
    pbVar1 = param_4 + local_3c;
    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);
    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);
    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);
    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);
    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);
    uVar6 = local_3c + 0x14;
    do {
      uVar8 = uVar6;
      if (param_4[uVar6 - 1] != 0x20) break;
      param_4[uVar6 - 1] = 0;
      uVar6 = uVar6 - 1;
      uVar8 = local_3c;
    } while (local_3c != uVar6);
    if ((uVar8 & 3) != 0) {
      uVar6 = ((int)uVar6 >> 2) * 4 + 4;
    }
    param_4[7] = (char)uVar6 - 8;
    uVar8 = uVar6;
    if (param_1 != 0) {
      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);
      cVar4 = sg_all_zeros(param_1 + 0x78,8);
      if (cVar3 == '\0') {
        if ((int)(uVar6 + 0x13) < (int)param_5) {
          param_4[uVar6] = 1;
          param_4[uVar6 + 1] = 2;
          param_4[uVar6 + 3] = 0x10;
          pbVar1 = param_4 + uVar6 + 4;
          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);
          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);
          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);
          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);
          uVar8 = uVar6 + 0x14;
          if ((int)(uVar6 + 0x3b) < (int)param_5) {
            param_4[uVar6 + 0x14] = 3;
            param_4[uVar6 + 0x15] = 8;
            param_4[uVar6 + 0x17] = 0x24;
            pbVar1 = param_4 + uVar6 + 0x18;
            pbVar1[0] = 0x65;
            pbVar1[1] = 0x75;
            pbVar1[2] = 0x69;
            pbVar1[3] = 0x2e;
            iVar5 = 0;
            do {
              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,
                             *(undefined1 *)(param_1 + 0x68 + iVar5));
              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];
              iVar5 = iVar5 + 1;
            } while (iVar5 != 0x10);
            uVar8 = uVar6 + 0x3c;
          }
        }
      }
      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {
        param_4[uVar6] = 1;
        param_4[uVar6 + 1] = 2;
        param_4[uVar6 + 3] = 8;
        uVar2 = *(undefined4 *)(param_1 + 0x7c);
        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);
        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;
        uVar8 = uVar6 + 0xc;
        if ((int)(uVar6 + 0x23) < (int)param_5) {
          param_4[uVar6 + 0xc] = 3;
          param_4[uVar6 + 0xd] = 8;
          param_4[uVar6 + 0xf] = 0x14;
          pbVar1 = param_4 + uVar6 + 0x10;
          pbVar1[0] = 0x65;
          pbVar1[1] = 0x75;
          pbVar1[2] = 0x69;
          pbVar1[3] = 0x2e;
          iVar5 = 0;
          do {
            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,
                           *(undefined1 *)(param_1 + 0x78 + iVar5));
            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];
            iVar5 = iVar5 + 1;
          } while (iVar5 != 8);
          uVar8 = uVar6 + 0x24;
        }
      }
    }
  }
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002f100();
  }
  return uVar8;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017820
ADD EBX,0x1e75f
SUB ESP,0x2c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x1c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x50]
MOV EDI,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x44]
TEST ESI,ESI
SETZ DL
CMP dword ptr [ESP + 0x54],0x37
SETLE AL
OR DL,AL
JNZ 0x0002a65f
TEST EDI,EDI
JNZ 0x0002a680
XOR EDI,EDI
MOV EBX,dword ptr [ESP + 0x1c]
XOR EBX,dword ptr GS:[0x14]
MOV EAX,EDI
JNZ 0x0002a99e
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH dword ptr [ESP + 0x58]
PUSH 0x0
PUSH ESI
CALL 0x000174a0
MOVZX EAX,byte ptr [ESP + 0x58]
ADD ESP,0x10
MOV byte ptr [ESI + 0x1],0x83
AND EAX,0x1f
MOV byte ptr [ESI],AL
MOV EAX,dword ptr [ESP + 0x4c]
TEST EAX,EAX
JS 0x0002a830
MOV EAX,dword ptr [ESP + 0x4c]
MOV byte ptr [ESI + 0x5],0xa1
SHL EAX,0x4
OR EAX,0x2
MOV byte ptr [ESI + 0x4],AL
MOV dword ptr [ESI + 0x8],0x654d564e
MOV EAX,0x28
MOV dword ptr [ESI + 0xc],0x20202020
MOV ECX,dword ptr [EDI + 0x18]
MOV dword ptr [ESI + 0x10],ECX
MOV ECX,dword ptr [EDI + 0x1c]
MOV dword ptr [ESI + 0x14],ECX
MOV ECX,dword ptr [EDI + 0x20]
MOV dword ptr [ESI + 0x18],ECX
MOV ECX,dword ptr [EDI + 0x24]
MOV dword ptr [ESI + 0x1c],ECX
MOV ECX,dword ptr [EDI + 0x28]
MOV dword ptr [ESI + 0x20],ECX
MOV ECX,dword ptr [EDI + 0x2c]
MOV dword ptr [ESI + 0x24],ECX
MOV ECX,dword ptr [EDI + 0x30]
MOV dword ptr [ESI + 0x28],ECX
MOV ECX,dword ptr [EDI + 0x34]
MOV dword ptr [ESI + 0x2c],ECX
MOV ECX,dword ptr [EDI + 0x38]
MOV dword ptr [ESI + 0x30],ECX
MOV EDX,dword ptr [EDI + 0x3c]
MOV dword ptr [ESI + 0x34],EDX
JMP 0x0002a71e
MOV byte ptr [ESI + EAX*0x1 + 0xf],0x5f
SUB EAX,0x1
JZ 0x0002a850
CMP byte ptr [ESI + EAX*0x1 + 0xf],0x20
JZ 0x0002a710
CMP EAX,0x28
JZ 0x0002a840
LEA EDX,[EAX + 0x24]
ADD EAX,0x11
CMP dword ptr [ESP + 0x54],EDX
JLE 0x0002a65f
MOV dword ptr [ESP + 0x4],EAX
MOV ECX,dword ptr [ESP + 0x4]
LEA EDX,[ESI + ECX*0x1]
LEA ECX,[EDI + 0x4]
MOV EDI,dword ptr [EDI + 0x4]
MOV dword ptr [EDX],EDI
MOV EDI,dword ptr [ECX + 0x4]
MOV dword ptr [EDX + 0x4],EDI
MOV EDI,dword ptr [ECX + 0x8]
MOV dword ptr [EDX + 0x8],EDI
MOV EDI,dword ptr [ECX + 0xc]
MOV dword ptr [EDX + 0xc],EDI
MOV ECX,dword ptr [ECX + 0x10]
MOV dword ptr [EDX + 0x10],ECX
LEA EDX,[EAX + 0x14]
JMP 0x0002a780
MOV byte ptr [ESI + EDX*0x1 + -0x1],0x0
SUB EDX,0x1
CMP EAX,EDX
JZ 0x0002a868
CMP byte ptr [ESI + EDX*0x1 + -0x1],0x20
MOV EDI,EDX
JZ 0x0002a770
AND EDX,0x3
JZ 0x0002a798
SAR EDI,0x2
LEA EDI,[EDI*0x4 + 0x4]
LEA EAX,[EDI + -0x8]
MOV byte ptr [ESI + 0x7],AL
TEST EBP,EBP
JZ 0x0002a661
SUB ESP,0x8
LEA ECX,[EBP + 0x68]
PUSH 0x10
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
CALL 0x00017720
MOV byte ptr [ESP + 0x14],AL
POP EAX
LEA EAX,[EBP + 0x78]
POP EDX
PUSH 0x8
PUSH EAX
CALL 0x00017720
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP + 0x8]
TEST DL,DL
JZ 0x0002a8e6
TEST AL,AL
JNZ 0x0002a661
LEA EAX,[EDI + 0xb]
CMP EAX,dword ptr [ESP + 0x54]
JGE 0x0002a661
LEA EAX,[ESI + EDI*0x1]
MOV byte ptr [EAX],0x1
MOV dword ptr [ESP + 0x4],EAX
MOV byte ptr [ESI + EDI*0x1 + 0x1],0x2
MOV byte ptr [ESI + EDI*0x1 + 0x3],0x8
MOV EAX,dword ptr [EBP + 0x78]
MOV EDX,dword ptr [EBP + 0x7c]
MOV dword ptr [ESI + EDI*0x1 + 0x4],EAX
LEA EAX,[EDI + 0x23]
MOV dword ptr [ESI + EDI*0x1 + 0x8],EDX
LEA EDX,[EDI + 0xc]
CMP EAX,dword ptr [ESP + 0x54]
JL 0x0002a873
MOV EDI,EDX
JMP 0x0002a661
MOV ECX,0x2102
MOV word ptr [ESI + 0x4],CX
JMP 0x0002a6bd
MOV EAX,0x38
MOV EDX,0x4b
JMP 0x0002a734
MOV dword ptr [ESP + 0x4],0x11
MOV EAX,0x11
JMP 0x0002a742
MOV EDI,EDX
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x0002a789
LEA EAX,[EBX + 0xffff418b]
XOR EDX,EDX
MOV byte ptr [ESI + EDI*0x1 + 0xc],0x3
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESP + 0x18]
MOV byte ptr [ESI + EDI*0x1 + 0xd],0x8
MOV byte ptr [ESI + EDI*0x1 + 0xf],0x14
MOV dword ptr [ESI + EDI*0x1 + 0x10],0x2e697565
MOV ESI,EDX
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,EAX
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EBP + ESI*0x1 + 0x78]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x14]
PUSH 0x4
PUSH 0x1
PUSH 0x4
PUSH EDI
CALL 0x00017060
MOVZX EAX,word ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x24]
ADD ESP,0x20
MOV word ptr [ECX + ESI*0x2 + 0x14],AX
ADD ESI,0x1
CMP ESI,0x8
JNZ 0x0002a8a8
MOV EDI,dword ptr [ESP + 0xc]
ADD EDI,0x24
JMP 0x0002a661
LEA EAX,[EDI + 0x13]
CMP EAX,dword ptr [ESP + 0x54]
JGE 0x0002a661
LEA EAX,[ESI + EDI*0x1]
MOV byte ptr [EAX],0x1
MOV byte ptr [ESI + EDI*0x1 + 0x1],0x2
MOV byte ptr [ESI + EDI*0x1 + 0x3],0x10
MOV EDX,dword ptr [EBP + 0x68]
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[ESI + EDI*0x1 + 0x4]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ECX + 0x4]
MOV dword ptr [EAX + 0x4],EDX
MOV EDX,dword ptr [ECX + 0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [ECX + 0xc]
MOV dword ptr [EAX + 0xc],EDX
LEA EDX,[EDI + 0x14]
LEA EAX,[EDI + 0x3b]
CMP EAX,dword ptr [ESP + 0x54]
JGE 0x0002a820
LEA ECX,[ESP + 0x18]
LEA EAX,[EBX + 0xffff418b]
MOV byte ptr [ESI + EDI*0x1 + 0x14],0x3
MOV dword ptr [ESP + 0x8],ECX
MOV byte ptr [ESI + EDI*0x1 + 0x15],0x8
MOV byte ptr [ESI + EDI*0x1 + 0x17],0x24
MOV dword ptr [ESI + EDI*0x1 + 0x18],0x2e697565
XOR ESI,ESI
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,EAX
NOP
MOVZX EAX,byte ptr [EBP + ESI*0x1 + 0x68]
SUB ESP,0x8
PUSH EAX
PUSH EDI
PUSH 0x4
PUSH 0x1
PUSH 0x4
PUSH dword ptr [ESP + 0x24]
CALL 0x00017060
MOVZX EAX,word ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x24]
ADD ESP,0x20
MOV word ptr [ECX + ESI*0x2 + 0x1c],AX
ADD ESI,0x1
CMP ESI,0x10
JNZ 0x0002a960
MOV EDI,dword ptr [ESP + 0xc]
ADD EDI,0x3c
JMP 0x0002a661
CALL 0x0002f100
(translation_unit "uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f100();\n  }\n  return uVar8;\n}\n\n" (function_definition "uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f100();\n  }\n  return uVar8;\n}" type_identifier (function_declarator "sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" identifier (parameter_list "(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "byte param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "size_t param_5" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f100();\n  }\n  return uVar8;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined2 local_28 [2];" type_identifier (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2a629;" (assignment_expression "uStack_14 = 0x2a629" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0))" ( (binary_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)" (parenthesized_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38)" ( (binary_expression "param_4 == (byte *)0x0 || (int)param_5 < 0x38" (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(int)param_5 < 0x38" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) )) || (parenthesized_expression "(unaff_retaddr == 0)" ( (binary_expression "unaff_retaddr == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0002a65f:\n    uVar8 = 0;\n  }" { (labeled_statement "LAB_0002a65f:\n    uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" { (expression_statement "memset(param_4,0,param_5);" (call_expression "memset(param_4,0,param_5)" identifier (argument_list "(param_4,0,param_5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "param_4[1] = 0x83;" (assignment_expression "param_4[1] = 0x83" (subscript_expression "param_4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_4 = param_2 & 0x1f;" (assignment_expression "*param_4 = param_2 & 0x1f" (pointer_expression "*param_4" * identifier) = (binary_expression "param_2 & 0x1f" identifier & number_literal)) ;) (if_statement "if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }" { (expression_statement "param_4[4] = 2;" (assignment_expression "param_4[4] = 2" (subscript_expression "param_4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[5] = 0x21;" (assignment_expression "param_4[5] = 0x21" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" else (compound_statement "{\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" { (expression_statement "param_4[5] = 0xa1;" (assignment_expression "param_4[5] = 0xa1" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[4] = (byte)(param_3 << 4) | 2;" (assignment_expression "param_4[4] = (byte)(param_3 << 4) | 2" (subscript_expression "param_4[4]" identifier [ number_literal ]) = (binary_expression "(byte)(param_3 << 4) | 2" (call_expression "(byte)(param_3 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_3 << 4)" ( (binary_expression "param_3 << 4" identifier << number_literal) ))) | number_literal)) ;) }))) (expression_statement "param_4[8] = 0x4e;" (assignment_expression "param_4[8] = 0x4e" (subscript_expression "param_4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[9] = 0x56;" (assignment_expression "param_4[9] = 0x56" (subscript_expression "param_4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[10] = 0x4d;" (assignment_expression "param_4[10] = 0x4d" (subscript_expression "param_4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xb] = 0x65;" (assignment_expression "param_4[0xb] = 0x65" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0x28;" (assignment_expression "iVar5 = 0x28" identifier = number_literal) ;) (expression_statement "param_4[0xc] = 0x20;" (assignment_expression "param_4[0xc] = 0x20" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xd] = 0x20;" (assignment_expression "param_4[0xd] = 0x20" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xe] = 0x20;" (assignment_expression "param_4[0xe] = 0x20" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xf] = 0x20;" (assignment_expression "param_4[0xf] = 0x20" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);" (assignment_expression "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18)" (pointer_expression "*(undefined4 *)(param_4 + 0x10)" * (cast_expression "(undefined4 *)(param_4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x18)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x18)" ( (binary_expression "unaff_retaddr + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);" (assignment_expression "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c)" (pointer_expression "*(undefined4 *)(param_4 + 0x14)" * (cast_expression "(undefined4 *)(param_4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x1c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x1c)" ( (binary_expression "unaff_retaddr + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);" (assignment_expression "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20)" (pointer_expression "*(undefined4 *)(param_4 + 0x18)" * (cast_expression "(undefined4 *)(param_4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x20)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x20)" ( (binary_expression "unaff_retaddr + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24)" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x24)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x24)" ( (binary_expression "unaff_retaddr + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28)" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x28)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x28)" ( (binary_expression "unaff_retaddr + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);" (assignment_expression "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c)" (pointer_expression "*(undefined4 *)(param_4 + 0x24)" * (cast_expression "(undefined4 *)(param_4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x2c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x2c)" ( (binary_expression "unaff_retaddr + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);" (assignment_expression "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30)" (pointer_expression "*(undefined4 *)(param_4 + 0x28)" * (cast_expression "(undefined4 *)(param_4 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x30)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x30)" ( (binary_expression "unaff_retaddr + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);" (assignment_expression "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34)" (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" * (cast_expression "(undefined4 *)(param_4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x2c)" ( (binary_expression "param_4 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x34)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x34)" ( (binary_expression "unaff_retaddr + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);" (assignment_expression "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38)" (pointer_expression "*(undefined4 *)(param_4 + 0x30)" * (cast_expression "(undefined4 *)(param_4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x38)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x38)" ( (binary_expression "unaff_retaddr + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);" (assignment_expression "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c)" (pointer_expression "*(undefined4 *)(param_4 + 0x34)" * (cast_expression "(undefined4 *)(param_4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x3c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x3c)" ( (binary_expression "unaff_retaddr + 0x3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);" do (compound_statement "{\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    }" { (if_statement "if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" if (parenthesized_expression "(param_4[iVar5 + 0xf] != 0x20)" ( (binary_expression "param_4[iVar5 + 0xf] != 0x20" (subscript_expression "param_4[iVar5 + 0xf]" identifier [ (binary_expression "iVar5 + 0xf" identifier + number_literal) ]) != number_literal) )) (compound_statement "{\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" { (if_statement "if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" if (parenthesized_expression "(iVar5 == 0x28)" ( (binary_expression "iVar5 == 0x28" identifier == number_literal) )) (compound_statement "{\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }" { (expression_statement "local_3c = 0x38;" (assignment_expression "local_3c = 0x38" identifier = number_literal) ;) (expression_statement "iVar7 = 0x4b;" (assignment_expression "iVar7 = 0x4b" identifier = number_literal) ;) }) (else_clause "else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" else (compound_statement "{\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" { (expression_statement "iVar7 = iVar5 + 0x24;" (assignment_expression "iVar7 = iVar5 + 0x24" identifier = (binary_expression "iVar5 + 0x24" identifier + number_literal)) ;) (expression_statement "local_3c = iVar5 + 0x11;" (assignment_expression "local_3c = iVar5 + 0x11" identifier = (binary_expression "iVar5 + 0x11" identifier + number_literal)) ;) }))) (if_statement "if (iVar7 < (int)param_5) goto LAB_0002a742;" if (parenthesized_expression "(iVar7 < (int)param_5)" ( (binary_expression "iVar7 < (int)param_5" identifier < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a742;" goto statement_identifier ;)) (goto_statement "goto LAB_0002a65f;" goto statement_identifier ;) })) (expression_statement "param_4[iVar5 + 0xf] = 0x5f;" (assignment_expression "param_4[iVar5 + 0xf] = 0x5f" (subscript_expression "param_4[iVar5 + 0xf]" identifier [ (binary_expression "iVar5 + 0xf" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "local_3c = 0x11;" (assignment_expression "local_3c = 0x11" identifier = number_literal) ;) (labeled_statement "LAB_0002a742:\n    pbVar1 = param_4 + local_3c;" statement_identifier : (expression_statement "pbVar1 = param_4 + local_3c;" (assignment_expression "pbVar1 = param_4 + local_3c" identifier = (binary_expression "param_4 + local_3c" identifier + identifier)) ;)) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4)" (pointer_expression "*(undefined4 *)pbVar1" * (cast_expression "(undefined4 *)pbVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 4)" * (cast_expression "(undefined4 *)(unaff_retaddr + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 4)" ( (binary_expression "unaff_retaddr + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" * (cast_expression "(undefined4 *)(pbVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 4)" ( (binary_expression "pbVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 8)" * (cast_expression "(undefined4 *)(unaff_retaddr + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 8)" ( (binary_expression "unaff_retaddr + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" * (cast_expression "(undefined4 *)(pbVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 8)" ( (binary_expression "pbVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0xc)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0xc)" ( (binary_expression "unaff_retaddr + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" * (cast_expression "(undefined4 *)(pbVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0xc)" ( (binary_expression "pbVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x10)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x10)" ( (binary_expression "unaff_retaddr + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);" (assignment_expression "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14)" (pointer_expression "*(undefined4 *)(pbVar1 + 0x10)" * (cast_expression "(undefined4 *)(pbVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0x10)" ( (binary_expression "pbVar1 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x14)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x14)" ( (binary_expression "unaff_retaddr + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = local_3c + 0x14;" (assignment_expression "uVar6 = local_3c + 0x14" identifier = (binary_expression "local_3c + 0x14" identifier + number_literal)) ;) (do_statement "do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);" do (compound_statement "{\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    }" { (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" identifier = identifier) ;) (if_statement "if (param_4[uVar6 - 1] != 0x20) break;" if (parenthesized_expression "(param_4[uVar6 - 1] != 0x20)" ( (binary_expression "param_4[uVar6 - 1] != 0x20" (subscript_expression "param_4[uVar6 - 1]" identifier [ (binary_expression "uVar6 - 1" identifier - number_literal) ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_4[uVar6 - 1] = 0;" (assignment_expression "param_4[uVar6 - 1] = 0" (subscript_expression "param_4[uVar6 - 1]" identifier [ (binary_expression "uVar6 - 1" identifier - number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "uVar8 = local_3c;" (assignment_expression "uVar8 = local_3c" identifier = identifier) ;) }) while (parenthesized_expression "(local_3c != uVar6)" ( (binary_expression "local_3c != uVar6" identifier != identifier) )) ;) (if_statement "if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" if (parenthesized_expression "((uVar8 & 3) != 0)" ( (binary_expression "(uVar8 & 3) != 0" (parenthesized_expression "(uVar8 & 3)" ( (binary_expression "uVar8 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" { (expression_statement "uVar6 = ((int)uVar6 >> 2) * 4 + 4;" (assignment_expression "uVar6 = ((int)uVar6 >> 2) * 4 + 4" identifier = (binary_expression "((int)uVar6 >> 2) * 4 + 4" (binary_expression "((int)uVar6 >> 2) * 4" (parenthesized_expression "((int)uVar6 >> 2)" ( (binary_expression "(int)uVar6 >> 2" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal) + number_literal)) ;) })) (expression_statement "param_4[7] = (char)uVar6 - 8;" (assignment_expression "param_4[7] = (char)uVar6 - 8" (subscript_expression "param_4[7]" identifier [ number_literal ]) = (binary_expression "(char)uVar6 - 8" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" { (expression_statement "cVar3 = sg_all_zeros(param_1 + 0x68,0x10);" (assignment_expression "cVar3 = sg_all_zeros(param_1 + 0x68,0x10)" identifier = (call_expression "sg_all_zeros(param_1 + 0x68,0x10)" identifier (argument_list "(param_1 + 0x68,0x10)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , number_literal )))) ;) (expression_statement "cVar4 = sg_all_zeros(param_1 + 0x78,8);" (assignment_expression "cVar4 = sg_all_zeros(param_1 + 0x78,8)" identifier = (call_expression "sg_all_zeros(param_1 + 0x78,8)" identifier (argument_list "(param_1 + 0x78,8)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) , number_literal )))) ;) (if_statement "if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }" { (if_statement "if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" if (parenthesized_expression "((int)(uVar6 + 0x13) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x13) < (int)param_5" (cast_expression "(int)(uVar6 + 0x13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x13)" ( (binary_expression "uVar6 + 0x13" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" { (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 3] = 0x10;" (assignment_expression "param_4[uVar6 + 3] = 0x10" (subscript_expression "param_4[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 4;" (assignment_expression "pbVar1 = param_4 + uVar6 + 4" identifier = (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68)" (pointer_expression "*(undefined4 *)pbVar1" * (cast_expression "(undefined4 *)pbVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" * (cast_expression "(undefined4 *)(pbVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 4)" ( (binary_expression "pbVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" * (cast_expression "(undefined4 *)(pbVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 8)" ( (binary_expression "pbVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" * (cast_expression "(undefined4 *)(pbVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0xc)" ( (binary_expression "pbVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = uVar6 + 0x14;" (assignment_expression "uVar8 = uVar6 + 0x14" identifier = (binary_expression "uVar6 + 0x14" identifier + number_literal)) ;) (if_statement "if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" if (parenthesized_expression "((int)(uVar6 + 0x3b) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x3b) < (int)param_5" (cast_expression "(int)(uVar6 + 0x3b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x3b)" ( (binary_expression "uVar6 + 0x3b" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" { (expression_statement "param_4[uVar6 + 0x14] = 3;" (assignment_expression "param_4[uVar6 + 0x14] = 3" (subscript_expression "param_4[uVar6 + 0x14]" identifier [ (binary_expression "uVar6 + 0x14" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0x15] = 8;" (assignment_expression "param_4[uVar6 + 0x15] = 8" (subscript_expression "param_4[uVar6 + 0x15]" identifier [ (binary_expression "uVar6 + 0x15" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0x17] = 0x24;" (assignment_expression "param_4[uVar6 + 0x17] = 0x24" (subscript_expression "param_4[uVar6 + 0x17]" identifier [ (binary_expression "uVar6 + 0x17" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 0x18;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x18" identifier = (binary_expression "param_4 + uVar6 + 0x18" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);" do (compound_statement "{\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            }" { (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" identifier (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" ( identifier , number_literal , number_literal , number_literal , (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" " string_content ") + identifier) + number_literal) , (pointer_expression "*(undefined1 *)(param_1 + 0x68 + iVar5)" * (cast_expression "(undefined1 *)(param_1 + 0x68 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68 + iVar5)" ( (binary_expression "param_1 + 0x68 + iVar5" (binary_expression "param_1 + 0x68" identifier + number_literal) + identifier) )))) ))) ;) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" * (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x1c)" ( (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x1c" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" identifier + identifier) + (binary_expression "iVar5 * 2" identifier * number_literal)) + number_literal) )))) = (subscript_expression "local_28[0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0x10)" ( (binary_expression "iVar5 != 0x10" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar6 + 0x3c;" (assignment_expression "uVar8 = uVar6 + 0x3c" identifier = (binary_expression "uVar6 + 0x3c" identifier + number_literal)) ;) })) })) }) (else_clause "else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" else (if_statement "if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" if (parenthesized_expression "((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5))" ( (binary_expression "(cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)" (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)(uVar6 + 0xb) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0xb) < (int)param_5" (cast_expression "(int)(uVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0xb)" ( (binary_expression "uVar6 + 0xb" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" { (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 3] = 8;" (assignment_expression "param_4[uVar6 + 3] = 8" (subscript_expression "param_4[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x7c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x7c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78)" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 4)" * (cast_expression "(undefined4 *)(param_4 + uVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + 4)" ( (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 8)" * (cast_expression "(undefined4 *)(param_4 + uVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + 8)" ( (binary_expression "param_4 + uVar6 + 8" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = uVar6 + 0xc;" (assignment_expression "uVar8 = uVar6 + 0xc" identifier = (binary_expression "uVar6 + 0xc" identifier + number_literal)) ;) (if_statement "if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" if (parenthesized_expression "((int)(uVar6 + 0x23) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x23) < (int)param_5" (cast_expression "(int)(uVar6 + 0x23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x23)" ( (binary_expression "uVar6 + 0x23" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" { (expression_statement "param_4[uVar6 + 0xc] = 3;" (assignment_expression "param_4[uVar6 + 0xc] = 3" (subscript_expression "param_4[uVar6 + 0xc]" identifier [ (binary_expression "uVar6 + 0xc" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0xd] = 8;" (assignment_expression "param_4[uVar6 + 0xd] = 8" (subscript_expression "param_4[uVar6 + 0xd]" identifier [ (binary_expression "uVar6 + 0xd" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0xf] = 0x14;" (assignment_expression "param_4[uVar6 + 0xf] = 0x14" (subscript_expression "param_4[uVar6 + 0xf]" identifier [ (binary_expression "uVar6 + 0xf" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 0x10;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x10" identifier = (binary_expression "param_4 + uVar6 + 0x10" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);" do (compound_statement "{\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          }" { (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" identifier (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" ( identifier , number_literal , number_literal , number_literal , (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" " string_content ") + identifier) + number_literal) , (pointer_expression "*(undefined1 *)(param_1 + 0x78 + iVar5)" * (cast_expression "(undefined1 *)(param_1 + 0x78 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78 + iVar5)" ( (binary_expression "param_1 + 0x78 + iVar5" (binary_expression "param_1 + 0x78" identifier + number_literal) + identifier) )))) ))) ;) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" * (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x14)" ( (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x14" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" identifier + identifier) + (binary_expression "iVar5 * 2" identifier * number_literal)) + number_literal) )))) = (subscript_expression "local_28[0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar6 + 0x24;" (assignment_expression "uVar8 = uVar6 + 0x24" identifier = (binary_expression "uVar6 + 0x24" identifier + number_literal)) ;) })) })))) })) }))) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f100();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f100();\n  }" { comment (expression_statement "FUN_0002f100();" (call_expression "FUN_0002f100()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint sg_make_vpd_devid_for_nvme\n              (uint8_t *nvme_id_ctl_p,uint8_t *nvme_id_ns_p,int pdt,int tproto,uint8_t *dop,\n              int max_do_len)\n\n{\n  uint8_t *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  _Bool _Var4;\n  _Bool _Var5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  int in_GS_OFFSET;\n  uint local_38;\n  char b [4];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)) {\nLAB_0002a65f:\n    uVar9 = 0;\n  }\n  else {\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar9;\n}\n\n" comment comment (function_definition "int sg_make_vpd_devid_for_nvme\n              (uint8_t *nvme_id_ctl_p,uint8_t *nvme_id_ns_p,int pdt,int tproto,uint8_t *dop,\n              int max_do_len)\n\n{\n  uint8_t *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  _Bool _Var4;\n  _Bool _Var5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  int in_GS_OFFSET;\n  uint local_38;\n  char b [4];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)) {\nLAB_0002a65f:\n    uVar9 = 0;\n  }\n  else {\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar9;\n}" primitive_type (function_declarator "sg_make_vpd_devid_for_nvme\n              (uint8_t *nvme_id_ctl_p,uint8_t *nvme_id_ns_p,int pdt,int tproto,uint8_t *dop,\n              int max_do_len)" identifier (parameter_list "(uint8_t *nvme_id_ctl_p,uint8_t *nvme_id_ns_p,int pdt,int tproto,uint8_t *dop,\n              int max_do_len)" ( (parameter_declaration "uint8_t *nvme_id_ctl_p" primitive_type (pointer_declarator "*nvme_id_ctl_p" * identifier)) , (parameter_declaration "uint8_t *nvme_id_ns_p" primitive_type (pointer_declarator "*nvme_id_ns_p" * identifier)) , (parameter_declaration "int pdt" primitive_type identifier) , (parameter_declaration "int tproto" primitive_type identifier) , (parameter_declaration "uint8_t *dop" primitive_type (pointer_declarator "*dop" * identifier)) , (parameter_declaration "int max_do_len" primitive_type identifier) ))) (compound_statement "{\n  uint8_t *puVar1;\n  int iVar2;\n  undefined4 uVar3;\n  _Bool _Var4;\n  _Bool _Var5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  int in_GS_OFFSET;\n  uint local_38;\n  char b [4];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)) {\nLAB_0002a65f:\n    uVar9 = 0;\n  }\n  else {\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar9;\n}" { (declaration "uint8_t *puVar1;" primitive_type (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "_Bool _Var4;" type_identifier identifier ;) (declaration "_Bool _Var5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "char b [4];" primitive_type (array_declarator "b [4]" identifier [ number_literal ]) ;) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)) {\nLAB_0002a65f:\n    uVar9 = 0;\n  }\n  else {\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0))" ( (binary_expression "(dop == (uint8_t *)0x0 || max_do_len < 0x38) || (nvme_id_ctl_p == (uint8_t *)0x0)" (parenthesized_expression "(dop == (uint8_t *)0x0 || max_do_len < 0x38)" ( (binary_expression "dop == (uint8_t *)0x0 || max_do_len < 0x38" (binary_expression "dop == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "max_do_len < 0x38" identifier < number_literal)) )) || (parenthesized_expression "(nvme_id_ctl_p == (uint8_t *)0x0)" ( (binary_expression "nvme_id_ctl_p == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_0002a65f:\n    uVar9 = 0;\n  }" { (labeled_statement "LAB_0002a65f:\n    uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    memset(dop,0,max_do_len);\n    dop[1] = 0x83;\n    *dop = (byte)pdt & 0x1f;\n    if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }\n    dop[8] = 'N';\n    dop[9] = 'V';\n    dop[10] = 'M';\n    dop[0xb] = 'e';\n    iVar6 = 0x28;\n    dop[0xc] = ' ';\n    dop[0xd] = ' ';\n    dop[0xe] = ' ';\n    dop[0xf] = ' ';\n    *(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);\n    *(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);\n    *(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);\n    *(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);\n    *(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);\n    *(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);\n    *(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);\n    *(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);\n    *(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);\n    *(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);\n    do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);\n    local_38 = 0x11;\nLAB_0002a742:\n    puVar1 = dop + local_38;\n    *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);\n    *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);\n    *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);\n    *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);\n    *(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);\n    uVar7 = local_38 + 0x14;\n    do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);\n    if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }\n    dop[7] = (char)uVar7 + 0xf8;\n    uVar9 = uVar7;\n    if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }\n  }" { (expression_statement "memset(dop,0,max_do_len);" (call_expression "memset(dop,0,max_do_len)" identifier (argument_list "(dop,0,max_do_len)" ( identifier , number_literal , identifier ))) ;) (expression_statement "dop[1] = 0x83;" (assignment_expression "dop[1] = 0x83" (subscript_expression "dop[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*dop = (byte)pdt & 0x1f;" (assignment_expression "*dop = (byte)pdt & 0x1f" (pointer_expression "*dop" * identifier) = (binary_expression "(byte)pdt & 0x1f" (cast_expression "(byte)pdt" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (tproto < 0) {\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }\n    else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }" if (parenthesized_expression "(tproto < 0)" ( (binary_expression "tproto < 0" identifier < number_literal) )) (compound_statement "{\n      dop[4] = '\x02';\n      dop[5] = '!';\n    }" { (expression_statement "dop[4] = '\x02';" (assignment_expression "dop[4] = '\x02'" (subscript_expression "dop[4]" identifier [ number_literal ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "dop[5] = '!';" (assignment_expression "dop[5] = '!'" (subscript_expression "dop[5]" identifier [ number_literal ]) = (char_literal "'!'" ' character ')) ;) }) (else_clause "else {\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }" else (compound_statement "{\n      dop[5] = 0xa1;\n      dop[4] = (byte)(tproto << 4) | 2;\n    }" { (expression_statement "dop[5] = 0xa1;" (assignment_expression "dop[5] = 0xa1" (subscript_expression "dop[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dop[4] = (byte)(tproto << 4) | 2;" (assignment_expression "dop[4] = (byte)(tproto << 4) | 2" (subscript_expression "dop[4]" identifier [ number_literal ]) = (binary_expression "(byte)(tproto << 4) | 2" (call_expression "(byte)(tproto << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(tproto << 4)" ( (binary_expression "tproto << 4" identifier << number_literal) ))) | number_literal)) ;) }))) (expression_statement "dop[8] = 'N';" (assignment_expression "dop[8] = 'N'" (subscript_expression "dop[8]" identifier [ number_literal ]) = (char_literal "'N'" ' character ')) ;) (expression_statement "dop[9] = 'V';" (assignment_expression "dop[9] = 'V'" (subscript_expression "dop[9]" identifier [ number_literal ]) = (char_literal "'V'" ' character ')) ;) (expression_statement "dop[10] = 'M';" (assignment_expression "dop[10] = 'M'" (subscript_expression "dop[10]" identifier [ number_literal ]) = (char_literal "'M'" ' character ')) ;) (expression_statement "dop[0xb] = 'e';" (assignment_expression "dop[0xb] = 'e'" (subscript_expression "dop[0xb]" identifier [ number_literal ]) = (char_literal "'e'" ' character ')) ;) (expression_statement "iVar6 = 0x28;" (assignment_expression "iVar6 = 0x28" identifier = number_literal) ;) (expression_statement "dop[0xc] = ' ';" (assignment_expression "dop[0xc] = ' '" (subscript_expression "dop[0xc]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dop[0xd] = ' ';" (assignment_expression "dop[0xd] = ' '" (subscript_expression "dop[0xd]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dop[0xe] = ' ';" (assignment_expression "dop[0xe] = ' '" (subscript_expression "dop[0xe]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) (expression_statement "dop[0xf] = ' ';" (assignment_expression "dop[0xf] = ' '" (subscript_expression "dop[0xf]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) (expression_statement "*(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18);" (assignment_expression "*(undefined4 *)(dop + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x18)" (pointer_expression "*(undefined4 *)(dop + 0x10)" * (cast_expression "(undefined4 *)(dop + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x10)" ( (binary_expression "dop + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x18)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x18)" ( (binary_expression "nvme_id_ctl_p + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c);" (assignment_expression "*(undefined4 *)(dop + 0x14) = *(undefined4 *)(nvme_id_ctl_p + 0x1c)" (pointer_expression "*(undefined4 *)(dop + 0x14)" * (cast_expression "(undefined4 *)(dop + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x14)" ( (binary_expression "dop + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x1c)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x1c)" ( (binary_expression "nvme_id_ctl_p + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20);" (assignment_expression "*(undefined4 *)(dop + 0x18) = *(undefined4 *)(nvme_id_ctl_p + 0x20)" (pointer_expression "*(undefined4 *)(dop + 0x18)" * (cast_expression "(undefined4 *)(dop + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x18)" ( (binary_expression "dop + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x20)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x20)" ( (binary_expression "nvme_id_ctl_p + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24);" (assignment_expression "*(undefined4 *)(dop + 0x1c) = *(undefined4 *)(nvme_id_ctl_p + 0x24)" (pointer_expression "*(undefined4 *)(dop + 0x1c)" * (cast_expression "(undefined4 *)(dop + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x1c)" ( (binary_expression "dop + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x24)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x24)" ( (binary_expression "nvme_id_ctl_p + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28);" (assignment_expression "*(undefined4 *)(dop + 0x20) = *(undefined4 *)(nvme_id_ctl_p + 0x28)" (pointer_expression "*(undefined4 *)(dop + 0x20)" * (cast_expression "(undefined4 *)(dop + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x20)" ( (binary_expression "dop + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x28)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x28)" ( (binary_expression "nvme_id_ctl_p + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c);" (assignment_expression "*(undefined4 *)(dop + 0x24) = *(undefined4 *)(nvme_id_ctl_p + 0x2c)" (pointer_expression "*(undefined4 *)(dop + 0x24)" * (cast_expression "(undefined4 *)(dop + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x24)" ( (binary_expression "dop + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x2c)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x2c)" ( (binary_expression "nvme_id_ctl_p + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30);" (assignment_expression "*(undefined4 *)(dop + 0x28) = *(undefined4 *)(nvme_id_ctl_p + 0x30)" (pointer_expression "*(undefined4 *)(dop + 0x28)" * (cast_expression "(undefined4 *)(dop + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x28)" ( (binary_expression "dop + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x30)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x30)" ( (binary_expression "nvme_id_ctl_p + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34);" (assignment_expression "*(undefined4 *)(dop + 0x2c) = *(undefined4 *)(nvme_id_ctl_p + 0x34)" (pointer_expression "*(undefined4 *)(dop + 0x2c)" * (cast_expression "(undefined4 *)(dop + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x2c)" ( (binary_expression "dop + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x34)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x34)" ( (binary_expression "nvme_id_ctl_p + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38);" (assignment_expression "*(undefined4 *)(dop + 0x30) = *(undefined4 *)(nvme_id_ctl_p + 0x38)" (pointer_expression "*(undefined4 *)(dop + 0x30)" * (cast_expression "(undefined4 *)(dop + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x30)" ( (binary_expression "dop + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x38)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x38)" ( (binary_expression "nvme_id_ctl_p + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c);" (assignment_expression "*(undefined4 *)(dop + 0x34) = *(undefined4 *)(nvme_id_ctl_p + 0x3c)" (pointer_expression "*(undefined4 *)(dop + 0x34)" * (cast_expression "(undefined4 *)(dop + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + 0x34)" ( (binary_expression "dop + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x3c)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x3c)" ( (binary_expression "nvme_id_ctl_p + 0x3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    } while (iVar6 != 0);" do (compound_statement "{\n      if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      dop[iVar6 + 0xf] = '_';\n      iVar6 = iVar6 + -1;\n    }" { (if_statement "if (dop[iVar6 + 0xf] != ' ') {\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" if (parenthesized_expression "(dop[iVar6 + 0xf] != ' ')" ( (binary_expression "dop[iVar6 + 0xf] != ' '" (subscript_expression "dop[iVar6 + 0xf]" identifier [ (binary_expression "iVar6 + 0xf" identifier + number_literal) ]) != (char_literal "' '" ' character ')) )) (compound_statement "{\n        if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }\n        if (iVar8 < max_do_len) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" { (if_statement "if (iVar6 == 0x28) {\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }\n        else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }" if (parenthesized_expression "(iVar6 == 0x28)" ( (binary_expression "iVar6 == 0x28" identifier == number_literal) )) (compound_statement "{\n          local_38 = 0x38;\n          iVar8 = 0x4b;\n        }" { (expression_statement "local_38 = 0x38;" (assignment_expression "local_38 = 0x38" identifier = number_literal) ;) (expression_statement "iVar8 = 0x4b;" (assignment_expression "iVar8 = 0x4b" identifier = number_literal) ;) }) (else_clause "else {\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }" else (compound_statement "{\n          iVar8 = iVar6 + 0x24;\n          local_38 = iVar6 + 0x11;\n        }" { (expression_statement "iVar8 = iVar6 + 0x24;" (assignment_expression "iVar8 = iVar6 + 0x24" identifier = (binary_expression "iVar6 + 0x24" identifier + number_literal)) ;) (expression_statement "local_38 = iVar6 + 0x11;" (assignment_expression "local_38 = iVar6 + 0x11" identifier = (binary_expression "iVar6 + 0x11" identifier + number_literal)) ;) }))) (if_statement "if (iVar8 < max_do_len) goto LAB_0002a742;" if (parenthesized_expression "(iVar8 < max_do_len)" ( (binary_expression "iVar8 < max_do_len" identifier < identifier) )) (goto_statement "goto LAB_0002a742;" goto statement_identifier ;)) (goto_statement "goto LAB_0002a65f;" goto statement_identifier ;) })) (expression_statement "dop[iVar6 + 0xf] = '_';" (assignment_expression "dop[iVar6 + 0xf] = '_'" (subscript_expression "dop[iVar6 + 0xf]" identifier [ (binary_expression "iVar6 + 0xf" identifier + number_literal) ]) = (char_literal "'_'" ' character ')) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (expression_statement "local_38 = 0x11;" (assignment_expression "local_38 = 0x11" identifier = number_literal) ;) (labeled_statement "LAB_0002a742:\n    puVar1 = dop + local_38;" statement_identifier : (expression_statement "puVar1 = dop + local_38;" (assignment_expression "puVar1 = dop + local_38" identifier = (binary_expression "dop + local_38" identifier + identifier)) ;)) (expression_statement "*(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4);" (assignment_expression "*(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ctl_p + 4)" (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 4)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 4)" ( (binary_expression "nvme_id_ctl_p + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8);" (assignment_expression "*(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ctl_p + 8)" (pointer_expression "*(undefined4 *)(puVar1 + 4)" * (cast_expression "(undefined4 *)(puVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 8)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 8)" ( (binary_expression "nvme_id_ctl_p + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc);" (assignment_expression "*(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ctl_p + 0xc)" (pointer_expression "*(undefined4 *)(puVar1 + 8)" * (cast_expression "(undefined4 *)(puVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 8)" ( (binary_expression "puVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0xc)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0xc)" ( (binary_expression "nvme_id_ctl_p + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10);" (assignment_expression "*(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ctl_p + 0x10)" (pointer_expression "*(undefined4 *)(puVar1 + 0xc)" * (cast_expression "(undefined4 *)(puVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xc)" ( (binary_expression "puVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x10)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x10)" ( (binary_expression "nvme_id_ctl_p + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14);" (assignment_expression "*(undefined4 *)(puVar1 + 0x10) = *(undefined4 *)(nvme_id_ctl_p + 0x14)" (pointer_expression "*(undefined4 *)(puVar1 + 0x10)" * (cast_expression "(undefined4 *)(puVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x10)" ( (binary_expression "puVar1 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ctl_p + 0x14)" * (cast_expression "(undefined4 *)(nvme_id_ctl_p + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ctl_p + 0x14)" ( (binary_expression "nvme_id_ctl_p + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = local_38 + 0x14;" (assignment_expression "uVar7 = local_38 + 0x14" identifier = (binary_expression "local_38 + 0x14" identifier + number_literal)) ;) (do_statement "do {\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    } while (local_38 != uVar7);" do (compound_statement "{\n      uVar9 = uVar7;\n      if (dop[uVar7 - 1] != ' ') break;\n      dop[uVar7 - 1] = '\0';\n      uVar7 = uVar7 - 1;\n      uVar9 = local_38;\n    }" { (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) (if_statement "if (dop[uVar7 - 1] != ' ') break;" if (parenthesized_expression "(dop[uVar7 - 1] != ' ')" ( (binary_expression "dop[uVar7 - 1] != ' '" (subscript_expression "dop[uVar7 - 1]" identifier [ (binary_expression "uVar7 - 1" identifier - number_literal) ]) != (char_literal "' '" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "dop[uVar7 - 1] = '\0';" (assignment_expression "dop[uVar7 - 1] = '\0'" (subscript_expression "dop[uVar7 - 1]" identifier [ (binary_expression "uVar7 - 1" identifier - number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "uVar9 = local_38;" (assignment_expression "uVar9 = local_38" identifier = identifier) ;) }) while (parenthesized_expression "(local_38 != uVar7)" ( (binary_expression "local_38 != uVar7" identifier != identifier) )) ;) (if_statement "if ((uVar9 & 3) != 0) {\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }" if (parenthesized_expression "((uVar9 & 3) != 0)" ( (binary_expression "(uVar9 & 3) != 0" (parenthesized_expression "(uVar9 & 3)" ( (binary_expression "uVar9 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar7 = ((int)uVar7 >> 2) * 4 + 4;\n    }" { (expression_statement "uVar7 = ((int)uVar7 >> 2) * 4 + 4;" (assignment_expression "uVar7 = ((int)uVar7 >> 2) * 4 + 4" identifier = (binary_expression "((int)uVar7 >> 2) * 4 + 4" (binary_expression "((int)uVar7 >> 2) * 4" (parenthesized_expression "((int)uVar7 >> 2)" ( (binary_expression "(int)uVar7 >> 2" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal) + number_literal)) ;) })) (expression_statement "dop[7] = (char)uVar7 + 0xf8;" (assignment_expression "dop[7] = (char)uVar7 + 0xf8" (subscript_expression "dop[7]" identifier [ number_literal ]) = (binary_expression "(char)uVar7 + 0xf8" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) (if_statement "if (nvme_id_ns_p != (uint8_t *)0x0) {\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }" if (parenthesized_expression "(nvme_id_ns_p != (uint8_t *)0x0)" ( (binary_expression "nvme_id_ns_p != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      _Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);\n      _Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);\n      if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }\n    }" { (expression_statement "_Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10);" (assignment_expression "_Var4 = sg_all_zeros(nvme_id_ns_p + 0x68,0x10)" identifier = (call_expression "sg_all_zeros(nvme_id_ns_p + 0x68,0x10)" identifier (argument_list "(nvme_id_ns_p + 0x68,0x10)" ( (binary_expression "nvme_id_ns_p + 0x68" identifier + number_literal) , number_literal )))) ;) (expression_statement "_Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8);" (assignment_expression "_Var5 = sg_all_zeros(nvme_id_ns_p + 0x78,8)" identifier = (call_expression "sg_all_zeros(nvme_id_ns_p + 0x78,8)" identifier (argument_list "(nvme_id_ns_p + 0x78,8)" ( (binary_expression "nvme_id_ns_p + 0x78" identifier + number_literal) , number_literal )))) ;) (if_statement "if (_Var4) {\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }\n      else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }" if (parenthesized_expression "(_Var4)" ( identifier )) (compound_statement "{\n        if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }\n      }" { (if_statement "if ((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)) {\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }" if (parenthesized_expression "((!_Var5) && ((int)(uVar7 + 0xb) < max_do_len))" ( (binary_expression "(!_Var5) && ((int)(uVar7 + 0xb) < max_do_len)" (parenthesized_expression "(!_Var5)" ( (unary_expression "!_Var5" ! identifier) )) && (parenthesized_expression "((int)(uVar7 + 0xb) < max_do_len)" ( (binary_expression "(int)(uVar7 + 0xb) < max_do_len" (cast_expression "(int)(uVar7 + 0xb)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + 0xb)" ( (binary_expression "uVar7 + 0xb" identifier + number_literal) ))) < identifier) ))) )) (compound_statement "{\n          dop[uVar7] = '\x01';\n          dop[uVar7 + 1] = '\x02';\n          dop[uVar7 + 3] = '\b';\n          uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);\n          *(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);\n          *(undefined4 *)(dop + uVar7 + 8) = uVar3;\n          uVar9 = uVar7 + 0xc;\n          if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }\n        }" { (expression_statement "dop[uVar7] = '\x01';" (assignment_expression "dop[uVar7] = '\x01'" (subscript_expression "dop[uVar7]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 1] = '\x02';" (assignment_expression "dop[uVar7 + 1] = '\x02'" (subscript_expression "dop[uVar7 + 1]" identifier [ (binary_expression "uVar7 + 1" identifier + number_literal) ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 3] = '\b';" (assignment_expression "dop[uVar7 + 3] = '\b'" (subscript_expression "dop[uVar7 + 3]" identifier [ (binary_expression "uVar7 + 3" identifier + number_literal) ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c);" (assignment_expression "uVar3 = *(undefined4 *)(nvme_id_ns_p + 0x7c)" identifier = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x7c)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x7c)" ( (binary_expression "nvme_id_ns_p + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78);" (assignment_expression "*(undefined4 *)(dop + uVar7 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x78)" (pointer_expression "*(undefined4 *)(dop + uVar7 + 4)" * (cast_expression "(undefined4 *)(dop + uVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + uVar7 + 4)" ( (binary_expression "dop + uVar7 + 4" (binary_expression "dop + uVar7" identifier + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x78)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x78)" ( (binary_expression "nvme_id_ns_p + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(dop + uVar7 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(dop + uVar7 + 8) = uVar3" (pointer_expression "*(undefined4 *)(dop + uVar7 + 8)" * (cast_expression "(undefined4 *)(dop + uVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + uVar7 + 8)" ( (binary_expression "dop + uVar7 + 8" (binary_expression "dop + uVar7" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar7 + 0xc;" (assignment_expression "uVar9 = uVar7 + 0xc" identifier = (binary_expression "uVar7 + 0xc" identifier + number_literal)) ;) (if_statement "if ((int)(uVar7 + 0x23) < max_do_len) {\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }" if (parenthesized_expression "((int)(uVar7 + 0x23) < max_do_len)" ( (binary_expression "(int)(uVar7 + 0x23) < max_do_len" (cast_expression "(int)(uVar7 + 0x23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + 0x23)" ( (binary_expression "uVar7 + 0x23" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n            dop[uVar7 + 0xc] = '\x03';\n            dop[uVar7 + 0xd] = '\b';\n            dop[uVar7 + 0xf] = '\x14';\n            puVar1 = dop + uVar7 + 0x10;\n            puVar1[0] = 'e';\n            puVar1[1] = 'u';\n            puVar1[2] = 'i';\n            puVar1[3] = '.';\n            iVar6 = 0;\n            do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);\n            uVar9 = uVar7 + 0x24;\n          }" { (expression_statement "dop[uVar7 + 0xc] = '\x03';" (assignment_expression "dop[uVar7 + 0xc] = '\x03'" (subscript_expression "dop[uVar7 + 0xc]" identifier [ (binary_expression "uVar7 + 0xc" identifier + number_literal) ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 0xd] = '\b';" (assignment_expression "dop[uVar7 + 0xd] = '\b'" (subscript_expression "dop[uVar7 + 0xd]" identifier [ (binary_expression "uVar7 + 0xd" identifier + number_literal) ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 0xf] = '\x14';" (assignment_expression "dop[uVar7 + 0xf] = '\x14'" (subscript_expression "dop[uVar7 + 0xf]" identifier [ (binary_expression "uVar7 + 0xf" identifier + number_literal) ]) = (char_literal "'\x14'" ' escape_sequence ')) ;) (expression_statement "puVar1 = dop + uVar7 + 0x10;" (assignment_expression "puVar1 = dop + uVar7 + 0x10" identifier = (binary_expression "dop + uVar7 + 0x10" (binary_expression "dop + uVar7" identifier + identifier) + number_literal)) ;) (expression_statement "puVar1[0] = 'e';" (assignment_expression "puVar1[0] = 'e'" (subscript_expression "puVar1[0]" identifier [ number_literal ]) = (char_literal "'e'" ' character ')) ;) (expression_statement "puVar1[1] = 'u';" (assignment_expression "puVar1[1] = 'u'" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (char_literal "'u'" ' character ')) ;) (expression_statement "puVar1[2] = 'i';" (assignment_expression "puVar1[2] = 'i'" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "puVar1[3] = '.';" (assignment_expression "puVar1[3] = '.'" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            } while (iVar6 != 8);" do (compound_statement "{\n              __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);\n              *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;\n              iVar6 = iVar6 + 1;\n            }" { (expression_statement "__snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78]);" (call_expression "__snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78])" identifier (argument_list "(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x78])" ( identifier , number_literal , number_literal , number_literal , (pointer_expression "&DAT_0003cf13" & identifier) , (subscript_expression "nvme_id_ns_p[iVar6 + 0x78]" identifier [ (binary_expression "iVar6 + 0x78" identifier + number_literal) ]) ))) ;) (expression_statement "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_;" (assignment_expression "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14) = b._0_2_" (pointer_expression "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14)" * (cast_expression "(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + uVar7 + iVar6 * 2 + 0x14)" ( (binary_expression "dop + uVar7 + iVar6 * 2 + 0x14" (binary_expression "dop + uVar7 + iVar6 * 2" (binary_expression "dop + uVar7" identifier + identifier) + (binary_expression "iVar6 * 2" identifier * number_literal)) + number_literal) )))) = (field_expression "b._0_2_" identifier . field_identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != 8)" ( (binary_expression "iVar6 != 8" identifier != number_literal) )) ;) (expression_statement "uVar9 = uVar7 + 0x24;" (assignment_expression "uVar9 = uVar7 + 0x24" identifier = (binary_expression "uVar7 + 0x24" identifier + number_literal)) ;) })) })) }) (else_clause "else if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }" else (if_statement "if ((int)(uVar7 + 0x13) < max_do_len) {\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }" if (parenthesized_expression "((int)(uVar7 + 0x13) < max_do_len)" ( (binary_expression "(int)(uVar7 + 0x13) < max_do_len" (cast_expression "(int)(uVar7 + 0x13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + 0x13)" ( (binary_expression "uVar7 + 0x13" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n        dop[uVar7] = '\x01';\n        dop[uVar7 + 1] = '\x02';\n        dop[uVar7 + 3] = '\x10';\n        puVar1 = dop + uVar7 + 4;\n        *(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);\n        *(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);\n        *(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);\n        *(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);\n        uVar9 = uVar7 + 0x14;\n        if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }\n      }" { (expression_statement "dop[uVar7] = '\x01';" (assignment_expression "dop[uVar7] = '\x01'" (subscript_expression "dop[uVar7]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 1] = '\x02';" (assignment_expression "dop[uVar7 + 1] = '\x02'" (subscript_expression "dop[uVar7 + 1]" identifier [ (binary_expression "uVar7 + 1" identifier + number_literal) ]) = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 3] = '\x10';" (assignment_expression "dop[uVar7 + 3] = '\x10'" (subscript_expression "dop[uVar7 + 3]" identifier [ (binary_expression "uVar7 + 3" identifier + number_literal) ]) = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "puVar1 = dop + uVar7 + 4;" (assignment_expression "puVar1 = dop + uVar7 + 4" identifier = (binary_expression "dop + uVar7 + 4" (binary_expression "dop + uVar7" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68);" (assignment_expression "*(undefined4 *)puVar1 = *(undefined4 *)(nvme_id_ns_p + 0x68)" (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x68)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x68)" ( (binary_expression "nvme_id_ns_p + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c);" (assignment_expression "*(undefined4 *)(puVar1 + 4) = *(undefined4 *)(nvme_id_ns_p + 0x6c)" (pointer_expression "*(undefined4 *)(puVar1 + 4)" * (cast_expression "(undefined4 *)(puVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x6c)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x6c)" ( (binary_expression "nvme_id_ns_p + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70);" (assignment_expression "*(undefined4 *)(puVar1 + 8) = *(undefined4 *)(nvme_id_ns_p + 0x70)" (pointer_expression "*(undefined4 *)(puVar1 + 8)" * (cast_expression "(undefined4 *)(puVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 8)" ( (binary_expression "puVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x70)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x70)" ( (binary_expression "nvme_id_ns_p + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74);" (assignment_expression "*(undefined4 *)(puVar1 + 0xc) = *(undefined4 *)(nvme_id_ns_p + 0x74)" (pointer_expression "*(undefined4 *)(puVar1 + 0xc)" * (cast_expression "(undefined4 *)(puVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xc)" ( (binary_expression "puVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(nvme_id_ns_p + 0x74)" * (cast_expression "(undefined4 *)(nvme_id_ns_p + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nvme_id_ns_p + 0x74)" ( (binary_expression "nvme_id_ns_p + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar7 + 0x14;" (assignment_expression "uVar9 = uVar7 + 0x14" identifier = (binary_expression "uVar7 + 0x14" identifier + number_literal)) ;) (if_statement "if ((int)(uVar7 + 0x3b) < max_do_len) {\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }" if (parenthesized_expression "((int)(uVar7 + 0x3b) < max_do_len)" ( (binary_expression "(int)(uVar7 + 0x3b) < max_do_len" (cast_expression "(int)(uVar7 + 0x3b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + 0x3b)" ( (binary_expression "uVar7 + 0x3b" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n          dop[uVar7 + 0x14] = '\x03';\n          dop[uVar7 + 0x15] = '\b';\n          dop[uVar7 + 0x17] = '$';\n          puVar1 = dop + uVar7 + 0x18;\n          puVar1[0] = 'e';\n          puVar1[1] = 'u';\n          puVar1[2] = 'i';\n          puVar1[3] = '.';\n          iVar6 = 0;\n          do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);\n          uVar9 = uVar7 + 0x3c;\n        }" { (expression_statement "dop[uVar7 + 0x14] = '\x03';" (assignment_expression "dop[uVar7 + 0x14] = '\x03'" (subscript_expression "dop[uVar7 + 0x14]" identifier [ (binary_expression "uVar7 + 0x14" identifier + number_literal) ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 0x15] = '\b';" (assignment_expression "dop[uVar7 + 0x15] = '\b'" (subscript_expression "dop[uVar7 + 0x15]" identifier [ (binary_expression "uVar7 + 0x15" identifier + number_literal) ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "dop[uVar7 + 0x17] = '$';" (assignment_expression "dop[uVar7 + 0x17] = '$'" (subscript_expression "dop[uVar7 + 0x17]" identifier [ (binary_expression "uVar7 + 0x17" identifier + number_literal) ]) = (char_literal "'$'" ' character ')) ;) (expression_statement "puVar1 = dop + uVar7 + 0x18;" (assignment_expression "puVar1 = dop + uVar7 + 0x18" identifier = (binary_expression "dop + uVar7 + 0x18" (binary_expression "dop + uVar7" identifier + identifier) + number_literal)) ;) (expression_statement "puVar1[0] = 'e';" (assignment_expression "puVar1[0] = 'e'" (subscript_expression "puVar1[0]" identifier [ number_literal ]) = (char_literal "'e'" ' character ')) ;) (expression_statement "puVar1[1] = 'u';" (assignment_expression "puVar1[1] = 'u'" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (char_literal "'u'" ' character ')) ;) (expression_statement "puVar1[2] = 'i';" (assignment_expression "puVar1[2] = 'i'" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "puVar1[3] = '.';" (assignment_expression "puVar1[3] = '.'" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          } while (iVar6 != 0x10);" do (compound_statement "{\n            __snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);\n            *(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;\n            iVar6 = iVar6 + 1;\n          }" { (expression_statement "__snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68]);" (call_expression "__snprintf_chk(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68])" identifier (argument_list "(b,4,1,4,&DAT_0003cf13,nvme_id_ns_p[iVar6 + 0x68])" ( identifier , number_literal , number_literal , number_literal , (pointer_expression "&DAT_0003cf13" & identifier) , (subscript_expression "nvme_id_ns_p[iVar6 + 0x68]" identifier [ (binary_expression "iVar6 + 0x68" identifier + number_literal) ]) ))) ;) (expression_statement "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_;" (assignment_expression "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c) = b._0_2_" (pointer_expression "*(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c)" * (cast_expression "(undefined2 *)(dop + uVar7 + iVar6 * 2 + 0x1c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dop + uVar7 + iVar6 * 2 + 0x1c)" ( (binary_expression "dop + uVar7 + iVar6 * 2 + 0x1c" (binary_expression "dop + uVar7 + iVar6 * 2" (binary_expression "dop + uVar7" identifier + identifier) + (binary_expression "iVar6 * 2" identifier * number_literal)) + number_literal) )))) = (field_expression "b._0_2_" identifier . field_identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != 0x10)" ( (binary_expression "iVar6 != 0x10" identifier != number_literal) )) ;) (expression_statement "uVar9 = uVar7 + 0x3c;" (assignment_expression "uVar9 = uVar7 + 0x3c" identifier = (binary_expression "uVar7 + 0x3c" identifier + number_literal)) ;) })) })))) })) }))) (if_statement "if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar2 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar2 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar9;" return identifier ;) })))
(translation_unit "uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }\n  return uVar8;\n}\n\n" (function_definition "uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }\n  return uVar8;\n}" type_identifier (function_declarator "sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" identifier (parameter_list "(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "byte param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "size_t param_5" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }\n  return uVar8;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined2 local_28 [2];" type_identifier (array_declarator "local_28 [2]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2a629;" (assignment_expression "uStack_14 = 0x2a629" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" if (parenthesized_expression "((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0))" ( (binary_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)" (parenthesized_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38)" ( (binary_expression "param_4 == (byte *)0x0 || (int)param_5 < 0x38" (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(int)param_5 < 0x38" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) )) || (parenthesized_expression "(unaff_retaddr == 0)" ( (binary_expression "unaff_retaddr == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0002a65f:\n    uVar8 = 0;\n  }" { (labeled_statement "LAB_0002a65f:\n    uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" { (expression_statement "memset(param_4,0,param_5);" (call_expression "memset(param_4,0,param_5)" identifier (argument_list "(param_4,0,param_5)" ( identifier , number_literal , identifier ))) ;) (expression_statement "param_4[1] = 0x83;" (assignment_expression "param_4[1] = 0x83" (subscript_expression "param_4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_4 = param_2 & 0x1f;" (assignment_expression "*param_4 = param_2 & 0x1f" (pointer_expression "*param_4" * identifier) = (binary_expression "param_2 & 0x1f" identifier & number_literal)) ;) (if_statement "if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }" { (expression_statement "param_4[4] = 2;" (assignment_expression "param_4[4] = 2" (subscript_expression "param_4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[5] = 0x21;" (assignment_expression "param_4[5] = 0x21" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" else (compound_statement "{\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" { (expression_statement "param_4[5] = 0xa1;" (assignment_expression "param_4[5] = 0xa1" (subscript_expression "param_4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[4] = (byte)(param_3 << 4) | 2;" (assignment_expression "param_4[4] = (byte)(param_3 << 4) | 2" (subscript_expression "param_4[4]" identifier [ number_literal ]) = (binary_expression "(byte)(param_3 << 4) | 2" (call_expression "(byte)(param_3 << 4)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_3 << 4)" ( (binary_expression "param_3 << 4" identifier << number_literal) ))) | number_literal)) ;) }))) (expression_statement "param_4[8] = 0x4e;" (assignment_expression "param_4[8] = 0x4e" (subscript_expression "param_4[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[9] = 0x56;" (assignment_expression "param_4[9] = 0x56" (subscript_expression "param_4[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[10] = 0x4d;" (assignment_expression "param_4[10] = 0x4d" (subscript_expression "param_4[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xb] = 0x65;" (assignment_expression "param_4[0xb] = 0x65" (subscript_expression "param_4[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0x28;" (assignment_expression "iVar5 = 0x28" identifier = number_literal) ;) (expression_statement "param_4[0xc] = 0x20;" (assignment_expression "param_4[0xc] = 0x20" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xd] = 0x20;" (assignment_expression "param_4[0xd] = 0x20" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xe] = 0x20;" (assignment_expression "param_4[0xe] = 0x20" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_4[0xf] = 0x20;" (assignment_expression "param_4[0xf] = 0x20" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);" (assignment_expression "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18)" (pointer_expression "*(undefined4 *)(param_4 + 0x10)" * (cast_expression "(undefined4 *)(param_4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x18)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x18)" ( (binary_expression "unaff_retaddr + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);" (assignment_expression "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c)" (pointer_expression "*(undefined4 *)(param_4 + 0x14)" * (cast_expression "(undefined4 *)(param_4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x1c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x1c)" ( (binary_expression "unaff_retaddr + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);" (assignment_expression "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20)" (pointer_expression "*(undefined4 *)(param_4 + 0x18)" * (cast_expression "(undefined4 *)(param_4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x20)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x20)" ( (binary_expression "unaff_retaddr + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24)" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x24)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x24)" ( (binary_expression "unaff_retaddr + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28)" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x28)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x28)" ( (binary_expression "unaff_retaddr + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);" (assignment_expression "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c)" (pointer_expression "*(undefined4 *)(param_4 + 0x24)" * (cast_expression "(undefined4 *)(param_4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x24)" ( (binary_expression "param_4 + 0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x2c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x2c)" ( (binary_expression "unaff_retaddr + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);" (assignment_expression "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30)" (pointer_expression "*(undefined4 *)(param_4 + 0x28)" * (cast_expression "(undefined4 *)(param_4 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x28)" ( (binary_expression "param_4 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x30)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x30)" ( (binary_expression "unaff_retaddr + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);" (assignment_expression "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34)" (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" * (cast_expression "(undefined4 *)(param_4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x2c)" ( (binary_expression "param_4 + 0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x34)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x34)" ( (binary_expression "unaff_retaddr + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);" (assignment_expression "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38)" (pointer_expression "*(undefined4 *)(param_4 + 0x30)" * (cast_expression "(undefined4 *)(param_4 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x30)" ( (binary_expression "param_4 + 0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x38)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x38)" ( (binary_expression "unaff_retaddr + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);" (assignment_expression "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c)" (pointer_expression "*(undefined4 *)(param_4 + 0x34)" * (cast_expression "(undefined4 *)(param_4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x34)" ( (binary_expression "param_4 + 0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x3c)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x3c)" ( (binary_expression "unaff_retaddr + 0x3c" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);" do (compound_statement "{\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    }" { (if_statement "if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" if (parenthesized_expression "(param_4[iVar5 + 0xf] != 0x20)" ( (binary_expression "param_4[iVar5 + 0xf] != 0x20" (subscript_expression "param_4[iVar5 + 0xf]" identifier [ (binary_expression "iVar5 + 0xf" identifier + number_literal) ]) != number_literal) )) (compound_statement "{\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" { (if_statement "if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" if (parenthesized_expression "(iVar5 == 0x28)" ( (binary_expression "iVar5 == 0x28" identifier == number_literal) )) (compound_statement "{\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }" { (expression_statement "local_3c = 0x38;" (assignment_expression "local_3c = 0x38" identifier = number_literal) ;) (expression_statement "iVar7 = 0x4b;" (assignment_expression "iVar7 = 0x4b" identifier = number_literal) ;) }) (else_clause "else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" else (compound_statement "{\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" { (expression_statement "iVar7 = iVar5 + 0x24;" (assignment_expression "iVar7 = iVar5 + 0x24" identifier = (binary_expression "iVar5 + 0x24" identifier + number_literal)) ;) (expression_statement "local_3c = iVar5 + 0x11;" (assignment_expression "local_3c = iVar5 + 0x11" identifier = (binary_expression "iVar5 + 0x11" identifier + number_literal)) ;) }))) (if_statement "if (iVar7 < (int)param_5) goto LAB_0002a742;" if (parenthesized_expression "(iVar7 < (int)param_5)" ( (binary_expression "iVar7 < (int)param_5" identifier < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a742;" goto statement_identifier ;)) (goto_statement "goto LAB_0002a65f;" goto statement_identifier ;) })) (expression_statement "param_4[iVar5 + 0xf] = 0x5f;" (assignment_expression "param_4[iVar5 + 0xf] = 0x5f" (subscript_expression "param_4[iVar5 + 0xf]" identifier [ (binary_expression "iVar5 + 0xf" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "local_3c = 0x11;" (assignment_expression "local_3c = 0x11" identifier = number_literal) ;) (labeled_statement "LAB_0002a742:\n    pbVar1 = param_4 + local_3c;" statement_identifier : (expression_statement "pbVar1 = param_4 + local_3c;" (assignment_expression "pbVar1 = param_4 + local_3c" identifier = (binary_expression "param_4 + local_3c" identifier + identifier)) ;)) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4)" (pointer_expression "*(undefined4 *)pbVar1" * (cast_expression "(undefined4 *)pbVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 4)" * (cast_expression "(undefined4 *)(unaff_retaddr + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 4)" ( (binary_expression "unaff_retaddr + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" * (cast_expression "(undefined4 *)(pbVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 4)" ( (binary_expression "pbVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 8)" * (cast_expression "(undefined4 *)(unaff_retaddr + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 8)" ( (binary_expression "unaff_retaddr + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" * (cast_expression "(undefined4 *)(pbVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 8)" ( (binary_expression "pbVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0xc)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0xc)" ( (binary_expression "unaff_retaddr + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" * (cast_expression "(undefined4 *)(pbVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0xc)" ( (binary_expression "pbVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x10)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x10)" ( (binary_expression "unaff_retaddr + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);" (assignment_expression "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14)" (pointer_expression "*(undefined4 *)(pbVar1 + 0x10)" * (cast_expression "(undefined4 *)(pbVar1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0x10)" ( (binary_expression "pbVar1 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x14)" * (cast_expression "(undefined4 *)(unaff_retaddr + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_retaddr + 0x14)" ( (binary_expression "unaff_retaddr + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = local_3c + 0x14;" (assignment_expression "uVar6 = local_3c + 0x14" identifier = (binary_expression "local_3c + 0x14" identifier + number_literal)) ;) (do_statement "do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);" do (compound_statement "{\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    }" { (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" identifier = identifier) ;) (if_statement "if (param_4[uVar6 - 1] != 0x20) break;" if (parenthesized_expression "(param_4[uVar6 - 1] != 0x20)" ( (binary_expression "param_4[uVar6 - 1] != 0x20" (subscript_expression "param_4[uVar6 - 1]" identifier [ (binary_expression "uVar6 - 1" identifier - number_literal) ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_4[uVar6 - 1] = 0;" (assignment_expression "param_4[uVar6 - 1] = 0" (subscript_expression "param_4[uVar6 - 1]" identifier [ (binary_expression "uVar6 - 1" identifier - number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "uVar8 = local_3c;" (assignment_expression "uVar8 = local_3c" identifier = identifier) ;) }) while (parenthesized_expression "(local_3c != uVar6)" ( (binary_expression "local_3c != uVar6" identifier != identifier) )) ;) (if_statement "if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" if (parenthesized_expression "((uVar8 & 3) != 0)" ( (binary_expression "(uVar8 & 3) != 0" (parenthesized_expression "(uVar8 & 3)" ( (binary_expression "uVar8 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" { (expression_statement "uVar6 = ((int)uVar6 >> 2) * 4 + 4;" (assignment_expression "uVar6 = ((int)uVar6 >> 2) * 4 + 4" identifier = (binary_expression "((int)uVar6 >> 2) * 4 + 4" (binary_expression "((int)uVar6 >> 2) * 4" (parenthesized_expression "((int)uVar6 >> 2)" ( (binary_expression "(int)uVar6 >> 2" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal) + number_literal)) ;) })) (expression_statement "param_4[7] = (char)uVar6 - 8;" (assignment_expression "param_4[7] = (char)uVar6 - 8" (subscript_expression "param_4[7]" identifier [ number_literal ]) = (binary_expression "(char)uVar6 - 8" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" { (expression_statement "cVar3 = sg_all_zeros(param_1 + 0x68,0x10);" (assignment_expression "cVar3 = sg_all_zeros(param_1 + 0x68,0x10)" identifier = (call_expression "sg_all_zeros(param_1 + 0x68,0x10)" identifier (argument_list "(param_1 + 0x68,0x10)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , number_literal )))) ;) (expression_statement "cVar4 = sg_all_zeros(param_1 + 0x78,8);" (assignment_expression "cVar4 = sg_all_zeros(param_1 + 0x78,8)" identifier = (call_expression "sg_all_zeros(param_1 + 0x78,8)" identifier (argument_list "(param_1 + 0x78,8)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) , number_literal )))) ;) (if_statement "if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }" { (if_statement "if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" if (parenthesized_expression "((int)(uVar6 + 0x13) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x13) < (int)param_5" (cast_expression "(int)(uVar6 + 0x13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x13)" ( (binary_expression "uVar6 + 0x13" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" { (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 3] = 0x10;" (assignment_expression "param_4[uVar6 + 3] = 0x10" (subscript_expression "param_4[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 4;" (assignment_expression "pbVar1 = param_4 + uVar6 + 4" identifier = (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68)" (pointer_expression "*(undefined4 *)pbVar1" * (cast_expression "(undefined4 *)pbVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(param_1 + 0x68)" * (cast_expression "(undefined4 *)(param_1 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" * (cast_expression "(undefined4 *)(pbVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 4)" ( (binary_expression "pbVar1 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" * (cast_expression "(undefined4 *)(param_1 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" * (cast_expression "(undefined4 *)(pbVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 8)" ( (binary_expression "pbVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" * (cast_expression "(undefined4 *)(pbVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 0xc)" ( (binary_expression "pbVar1 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = uVar6 + 0x14;" (assignment_expression "uVar8 = uVar6 + 0x14" identifier = (binary_expression "uVar6 + 0x14" identifier + number_literal)) ;) (if_statement "if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" if (parenthesized_expression "((int)(uVar6 + 0x3b) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x3b) < (int)param_5" (cast_expression "(int)(uVar6 + 0x3b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x3b)" ( (binary_expression "uVar6 + 0x3b" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" { (expression_statement "param_4[uVar6 + 0x14] = 3;" (assignment_expression "param_4[uVar6 + 0x14] = 3" (subscript_expression "param_4[uVar6 + 0x14]" identifier [ (binary_expression "uVar6 + 0x14" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0x15] = 8;" (assignment_expression "param_4[uVar6 + 0x15] = 8" (subscript_expression "param_4[uVar6 + 0x15]" identifier [ (binary_expression "uVar6 + 0x15" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0x17] = 0x24;" (assignment_expression "param_4[uVar6 + 0x17] = 0x24" (subscript_expression "param_4[uVar6 + 0x17]" identifier [ (binary_expression "uVar6 + 0x17" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 0x18;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x18" identifier = (binary_expression "param_4 + uVar6 + 0x18" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);" do (compound_statement "{\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            }" { (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" identifier (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" ( identifier , number_literal , number_literal , number_literal , (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" " string_content ") + identifier) + number_literal) , (pointer_expression "*(undefined1 *)(param_1 + 0x68 + iVar5)" * (cast_expression "(undefined1 *)(param_1 + 0x68 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68 + iVar5)" ( (binary_expression "param_1 + 0x68 + iVar5" (binary_expression "param_1 + 0x68" identifier + number_literal) + identifier) )))) ))) ;) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" * (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x1c)" ( (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x1c" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" identifier + identifier) + (binary_expression "iVar5 * 2" identifier * number_literal)) + number_literal) )))) = (subscript_expression "local_28[0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0x10)" ( (binary_expression "iVar5 != 0x10" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar6 + 0x3c;" (assignment_expression "uVar8 = uVar6 + 0x3c" identifier = (binary_expression "uVar6 + 0x3c" identifier + number_literal)) ;) })) })) }) (else_clause "else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" else (if_statement "if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" if (parenthesized_expression "((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5))" ( (binary_expression "(cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)" (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)(uVar6 + 0xb) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0xb) < (int)param_5" (cast_expression "(int)(uVar6 + 0xb)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0xb)" ( (binary_expression "uVar6 + 0xb" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" { (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 3] = 8;" (assignment_expression "param_4[uVar6 + 3] = 8" (subscript_expression "param_4[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x7c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x7c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" * (cast_expression "(undefined4 *)(param_1 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78)" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 4)" * (cast_expression "(undefined4 *)(param_4 + uVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + 4)" ( (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 8)" * (cast_expression "(undefined4 *)(param_4 + uVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + 8)" ( (binary_expression "param_4 + uVar6 + 8" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = uVar6 + 0xc;" (assignment_expression "uVar8 = uVar6 + 0xc" identifier = (binary_expression "uVar6 + 0xc" identifier + number_literal)) ;) (if_statement "if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" if (parenthesized_expression "((int)(uVar6 + 0x23) < (int)param_5)" ( (binary_expression "(int)(uVar6 + 0x23) < (int)param_5" (cast_expression "(int)(uVar6 + 0x23)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + 0x23)" ( (binary_expression "uVar6 + 0x23" identifier + number_literal) ))) < (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" { (expression_statement "param_4[uVar6 + 0xc] = 3;" (assignment_expression "param_4[uVar6 + 0xc] = 3" (subscript_expression "param_4[uVar6 + 0xc]" identifier [ (binary_expression "uVar6 + 0xc" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0xd] = 8;" (assignment_expression "param_4[uVar6 + 0xd] = 8" (subscript_expression "param_4[uVar6 + 0xd]" identifier [ (binary_expression "uVar6 + 0xd" identifier + number_literal) ]) = number_literal) ;) (expression_statement "param_4[uVar6 + 0xf] = 0x14;" (assignment_expression "param_4[uVar6 + 0xf] = 0x14" (subscript_expression "param_4[uVar6 + 0xf]" identifier [ (binary_expression "uVar6 + 0xf" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar1 = param_4 + uVar6 + 0x10;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x10" identifier = (binary_expression "param_4 + uVar6 + 0x10" (binary_expression "param_4 + uVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);" do (compound_statement "{\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          }" { (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" identifier (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" ( identifier , number_literal , number_literal , number_literal , (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" " string_content ") + identifier) + number_literal) , (pointer_expression "*(undefined1 *)(param_1 + 0x78 + iVar5)" * (cast_expression "(undefined1 *)(param_1 + 0x78 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78 + iVar5)" ( (binary_expression "param_1 + 0x78 + iVar5" (binary_expression "param_1 + 0x78" identifier + number_literal) + identifier) )))) ))) ;) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" * (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x14)" ( (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x14" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" identifier + identifier) + (binary_expression "iVar5 * 2" identifier * number_literal)) + number_literal) )))) = (subscript_expression "local_28[0]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 8)" ( (binary_expression "iVar5 != 8" identifier != number_literal) )) ;) (expression_statement "uVar8 = uVar6 + 0x24;" (assignment_expression "uVar8 = uVar6 + 0x24" identifier = (binary_expression "uVar6 + 0x24" identifier + number_literal)) ;) })) })))) })) }))) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }" if (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0002f100();\n  }" { (expression_statement "FUN_0002f100();" (call_expression "FUN_0002f100()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 (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 (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 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 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 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 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 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 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 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 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 IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (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 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 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 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 IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) * LIT) + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (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 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 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 IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (binary_expression (binary_expression (string_literal " string_content ") + IDENT) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + 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 (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (binary_expression (binary_expression (string_literal " string_content ") + IDENT) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "uint sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }\n  return uVar8;\n}" (type_identifier "uint") (function_declarator "sg_make_vpd_devid_for_nvme(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" (identifier "sg_make_vpd_devid_for_nvme") (parameter_list "(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "byte param_2" (type_identifier "byte") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "size_t param_5" (primitive_type "size_t") (identifier "param_5")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  char cVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  int unaff_EBX;\n  uint uVar8;\n  int in_GS_OFFSET;\n  int unaff_retaddr;\n  uint local_3c;\n  undefined2 local_28 [2];\n  int local_24;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a629;\n  entry();\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }\n  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }\n  return uVar8;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int unaff_retaddr;" (primitive_type "int") (identifier "unaff_retaddr") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "undefined2 local_28 [2];" (type_identifier "undefined2") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2a629;" (assignment_expression "uStack_14 = 0x2a629" (identifier "uStack_14") (= "=") (number_literal "0x2a629")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {\nLAB_0002a65f:\n    uVar8 = 0;\n  }\n  else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0))" (( "(") (binary_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)" (parenthesized_expression "(param_4 == (byte *)0x0 || (int)param_5 < 0x38)" (( "(") (binary_expression "param_4 == (byte *)0x0 || (int)param_5 < 0x38" (binary_expression "param_4 == (byte *)0x0" (identifier "param_4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "(int)param_5 < 0x38" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (< "<") (number_literal "0x38"))) () ")")) (|| "||") (parenthesized_expression "(unaff_retaddr == 0)" (( "(") (binary_expression "unaff_retaddr == 0" (identifier "unaff_retaddr") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0002a65f:\n    uVar8 = 0;\n  }" ({ "{") (labeled_statement "LAB_0002a65f:\n    uVar8 = 0;" (statement_identifier "LAB_0002a65f") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    memset(param_4,0,param_5);\n    param_4[1] = 0x83;\n    *param_4 = param_2 & 0x1f;\n    if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }\n    param_4[8] = 0x4e;\n    param_4[9] = 0x56;\n    param_4[10] = 0x4d;\n    param_4[0xb] = 0x65;\n    iVar5 = 0x28;\n    param_4[0xc] = 0x20;\n    param_4[0xd] = 0x20;\n    param_4[0xe] = 0x20;\n    param_4[0xf] = 0x20;\n    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);\n    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);\n    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);\n    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);\n    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);\n    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);\n    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);\n    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);\n    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);\n    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);\n    do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);\n    local_3c = 0x11;\nLAB_0002a742:\n    pbVar1 = param_4 + local_3c;\n    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);\n    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);\n    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);\n    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);\n    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);\n    uVar6 = local_3c + 0x14;\n    do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);\n    if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }\n    param_4[7] = (char)uVar6 - 8;\n    uVar8 = uVar6;\n    if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "memset(param_4,0,param_5);" (call_expression "memset(param_4,0,param_5)" (identifier "memset") (argument_list "(param_4,0,param_5)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "param_4[1] = 0x83;" (assignment_expression "param_4[1] = 0x83" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x83")) (; ";")) (expression_statement "*param_4 = param_2 & 0x1f;" (assignment_expression "*param_4 = param_2 & 0x1f" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "param_2 & 0x1f" (identifier "param_2") (& "&") (number_literal "0x1f"))) (; ";")) (if_statement "if (param_3 < 0) {\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }\n    else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      param_4[4] = 2;\n      param_4[5] = 0x21;\n    }" ({ "{") (expression_statement "param_4[4] = 2;" (assignment_expression "param_4[4] = 2" (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "param_4[5] = 0x21;" (assignment_expression "param_4[5] = 0x21" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x21")) (; ";")) (} "}")) (else_clause "else {\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" (else "else") (compound_statement "{\n      param_4[5] = 0xa1;\n      param_4[4] = (byte)(param_3 << 4) | 2;\n    }" ({ "{") (expression_statement "param_4[5] = 0xa1;" (assignment_expression "param_4[5] = 0xa1" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xa1")) (; ";")) (expression_statement "param_4[4] = (byte)(param_3 << 4) | 2;" (assignment_expression "param_4[4] = (byte)(param_3 << 4) | 2" (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(byte)(param_3 << 4) | 2" (call_expression "(byte)(param_3 << 4)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(param_3 << 4)" (( "(") (binary_expression "param_3 << 4" (identifier "param_3") (<< "<<") (number_literal "4")) () ")"))) (| "|") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "param_4[8] = 0x4e;" (assignment_expression "param_4[8] = 0x4e" (subscript_expression "param_4[8]" (identifier "param_4") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0x4e")) (; ";")) (expression_statement "param_4[9] = 0x56;" (assignment_expression "param_4[9] = 0x56" (subscript_expression "param_4[9]" (identifier "param_4") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0x56")) (; ";")) (expression_statement "param_4[10] = 0x4d;" (assignment_expression "param_4[10] = 0x4d" (subscript_expression "param_4[10]" (identifier "param_4") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0x4d")) (; ";")) (expression_statement "param_4[0xb] = 0x65;" (assignment_expression "param_4[0xb] = 0x65" (subscript_expression "param_4[0xb]" (identifier "param_4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "iVar5 = 0x28;" (assignment_expression "iVar5 = 0x28" (identifier "iVar5") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "param_4[0xc] = 0x20;" (assignment_expression "param_4[0xc] = 0x20" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_4[0xd] = 0x20;" (assignment_expression "param_4[0xd] = 0x20" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_4[0xe] = 0x20;" (assignment_expression "param_4[0xe] = 0x20" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_4[0xf] = 0x20;" (assignment_expression "param_4[0xf] = 0x20" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);" (assignment_expression "*(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18)" (pointer_expression "*(undefined4 *)(param_4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x18)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x18)" (( "(") (binary_expression "unaff_retaddr + 0x18" (identifier "unaff_retaddr") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);" (assignment_expression "*(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c)" (pointer_expression "*(undefined4 *)(param_4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x14)" (( "(") (binary_expression "param_4 + 0x14" (identifier "param_4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x1c)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x1c)" (( "(") (binary_expression "unaff_retaddr + 0x1c" (identifier "unaff_retaddr") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);" (assignment_expression "*(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20)" (pointer_expression "*(undefined4 *)(param_4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x20)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x20)" (( "(") (binary_expression "unaff_retaddr + 0x20" (identifier "unaff_retaddr") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24)" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x24)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x24)" (( "(") (binary_expression "unaff_retaddr + 0x24" (identifier "unaff_retaddr") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28)" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x28)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x28)" (( "(") (binary_expression "unaff_retaddr + 0x28" (identifier "unaff_retaddr") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);" (assignment_expression "*(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c)" (pointer_expression "*(undefined4 *)(param_4 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x24)" (( "(") (binary_expression "param_4 + 0x24" (identifier "param_4") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x2c)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x2c)" (( "(") (binary_expression "unaff_retaddr + 0x2c" (identifier "unaff_retaddr") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);" (assignment_expression "*(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30)" (pointer_expression "*(undefined4 *)(param_4 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x28)" (( "(") (binary_expression "param_4 + 0x28" (identifier "param_4") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x30)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x30)" (( "(") (binary_expression "unaff_retaddr + 0x30" (identifier "unaff_retaddr") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);" (assignment_expression "*(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34)" (pointer_expression "*(undefined4 *)(param_4 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x2c)" (( "(") (binary_expression "param_4 + 0x2c" (identifier "param_4") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x34)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x34)" (( "(") (binary_expression "unaff_retaddr + 0x34" (identifier "unaff_retaddr") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);" (assignment_expression "*(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38)" (pointer_expression "*(undefined4 *)(param_4 + 0x30)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x30)" (( "(") (binary_expression "param_4 + 0x30" (identifier "param_4") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x38)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x38)" (( "(") (binary_expression "unaff_retaddr + 0x38" (identifier "unaff_retaddr") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);" (assignment_expression "*(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c)" (pointer_expression "*(undefined4 *)(param_4 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x34)" (( "(") (binary_expression "param_4 + 0x34" (identifier "param_4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x3c)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x3c)" (( "(") (binary_expression "unaff_retaddr + 0x3c" (identifier "unaff_retaddr") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (do_statement "do {\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    } while (iVar5 != 0);" (do "do") (compound_statement "{\n      if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }\n      param_4[iVar5 + 0xf] = 0x5f;\n      iVar5 = iVar5 + -1;\n    }" ({ "{") (if_statement "if (param_4[iVar5 + 0xf] != 0x20) {\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" (if "if") (parenthesized_expression "(param_4[iVar5 + 0xf] != 0x20)" (( "(") (binary_expression "param_4[iVar5 + 0xf] != 0x20" (subscript_expression "param_4[iVar5 + 0xf]" (identifier "param_4") ([ "[") (binary_expression "iVar5 + 0xf" (identifier "iVar5") (+ "+") (number_literal "0xf")) (] "]")) (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n        if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }\n        if (iVar7 < (int)param_5) goto LAB_0002a742;\n        goto LAB_0002a65f;\n      }" ({ "{") (if_statement "if (iVar5 == 0x28) {\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }\n        else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0x28)" (( "(") (binary_expression "iVar5 == 0x28" (identifier "iVar5") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n          local_3c = 0x38;\n          iVar7 = 0x4b;\n        }" ({ "{") (expression_statement "local_3c = 0x38;" (assignment_expression "local_3c = 0x38" (identifier "local_3c") (= "=") (number_literal "0x38")) (; ";")) (expression_statement "iVar7 = 0x4b;" (assignment_expression "iVar7 = 0x4b" (identifier "iVar7") (= "=") (number_literal "0x4b")) (; ";")) (} "}")) (else_clause "else {\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" (else "else") (compound_statement "{\n          iVar7 = iVar5 + 0x24;\n          local_3c = iVar5 + 0x11;\n        }" ({ "{") (expression_statement "iVar7 = iVar5 + 0x24;" (assignment_expression "iVar7 = iVar5 + 0x24" (identifier "iVar7") (= "=") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "local_3c = iVar5 + 0x11;" (assignment_expression "local_3c = iVar5 + 0x11" (identifier "local_3c") (= "=") (binary_expression "iVar5 + 0x11" (identifier "iVar5") (+ "+") (number_literal "0x11"))) (; ";")) (} "}")))) (if_statement "if (iVar7 < (int)param_5) goto LAB_0002a742;" (if "if") (parenthesized_expression "(iVar7 < (int)param_5)" (( "(") (binary_expression "iVar7 < (int)param_5" (identifier "iVar7") (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (goto_statement "goto LAB_0002a742;" (goto "goto") (statement_identifier "LAB_0002a742") (; ";"))) (goto_statement "goto LAB_0002a65f;" (goto "goto") (statement_identifier "LAB_0002a65f") (; ";")) (} "}"))) (expression_statement "param_4[iVar5 + 0xf] = 0x5f;" (assignment_expression "param_4[iVar5 + 0xf] = 0x5f" (subscript_expression "param_4[iVar5 + 0xf]" (identifier "param_4") ([ "[") (binary_expression "iVar5 + 0xf" (identifier "iVar5") (+ "+") (number_literal "0xf")) (] "]")) (= "=") (number_literal "0x5f")) (; ";")) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_3c = 0x11;" (assignment_expression "local_3c = 0x11" (identifier "local_3c") (= "=") (number_literal "0x11")) (; ";")) (labeled_statement "LAB_0002a742:\n    pbVar1 = param_4 + local_3c;" (statement_identifier "LAB_0002a742") (: ":") (expression_statement "pbVar1 = param_4 + local_3c;" (assignment_expression "pbVar1 = param_4 + local_3c" (identifier "pbVar1") (= "=") (binary_expression "param_4 + local_3c" (identifier "param_4") (+ "+") (identifier "local_3c"))) (; ";"))) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4)" (pointer_expression "*(undefined4 *)pbVar1" (* "*") (cast_expression "(undefined4 *)pbVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar1"))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 4)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 4)" (( "(") (binary_expression "unaff_retaddr + 4" (identifier "unaff_retaddr") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 4)" (( "(") (binary_expression "pbVar1 + 4" (identifier "pbVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 8)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 8)" (( "(") (binary_expression "unaff_retaddr + 8" (identifier "unaff_retaddr") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 8)" (( "(") (binary_expression "pbVar1 + 8" (identifier "pbVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0xc)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0xc)" (( "(") (binary_expression "unaff_retaddr + 0xc" (identifier "unaff_retaddr") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 0xc)" (( "(") (binary_expression "pbVar1 + 0xc" (identifier "pbVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x10)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x10)" (( "(") (binary_expression "unaff_retaddr + 0x10" (identifier "unaff_retaddr") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);" (assignment_expression "*(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14)" (pointer_expression "*(undefined4 *)(pbVar1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 0x10)" (( "(") (binary_expression "pbVar1 + 0x10" (identifier "pbVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(unaff_retaddr + 0x14)" (* "*") (cast_expression "(undefined4 *)(unaff_retaddr + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_retaddr + 0x14)" (( "(") (binary_expression "unaff_retaddr + 0x14" (identifier "unaff_retaddr") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar6 = local_3c + 0x14;" (assignment_expression "uVar6 = local_3c + 0x14" (identifier "uVar6") (= "=") (binary_expression "local_3c + 0x14" (identifier "local_3c") (+ "+") (number_literal "0x14"))) (; ";")) (do_statement "do {\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    } while (local_3c != uVar6);" (do "do") (compound_statement "{\n      uVar8 = uVar6;\n      if (param_4[uVar6 - 1] != 0x20) break;\n      param_4[uVar6 - 1] = 0;\n      uVar6 = uVar6 - 1;\n      uVar8 = local_3c;\n    }" ({ "{") (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" (identifier "uVar8") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (param_4[uVar6 - 1] != 0x20) break;" (if "if") (parenthesized_expression "(param_4[uVar6 - 1] != 0x20)" (( "(") (binary_expression "param_4[uVar6 - 1] != 0x20" (subscript_expression "param_4[uVar6 - 1]" (identifier "param_4") ([ "[") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0x20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_4[uVar6 - 1] = 0;" (assignment_expression "param_4[uVar6 - 1] = 0" (subscript_expression "param_4[uVar6 - 1]" (identifier "param_4") ([ "[") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = local_3c;" (assignment_expression "uVar8 = local_3c" (identifier "uVar8") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_3c != uVar6)" (( "(") (binary_expression "local_3c != uVar6" (identifier "local_3c") (!= "!=") (identifier "uVar6")) () ")")) (; ";")) (if_statement "if ((uVar8 & 3) != 0) {\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" (if "if") (parenthesized_expression "((uVar8 & 3) != 0)" (( "(") (binary_expression "(uVar8 & 3) != 0" (parenthesized_expression "(uVar8 & 3)" (( "(") (binary_expression "uVar8 & 3" (identifier "uVar8") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = ((int)uVar6 >> 2) * 4 + 4;\n    }" ({ "{") (expression_statement "uVar6 = ((int)uVar6 >> 2) * 4 + 4;" (assignment_expression "uVar6 = ((int)uVar6 >> 2) * 4 + 4" (identifier "uVar6") (= "=") (binary_expression "((int)uVar6 >> 2) * 4 + 4" (binary_expression "((int)uVar6 >> 2) * 4" (parenthesized_expression "((int)uVar6 >> 2)" (( "(") (binary_expression "(int)uVar6 >> 2" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "param_4[7] = (char)uVar6 - 8;" (assignment_expression "param_4[7] = (char)uVar6 - 8" (subscript_expression "param_4[7]" (identifier "param_4") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(char)uVar6 - 8" (cast_expression "(char)uVar6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar6")) (- "-") (number_literal "8"))) (; ";")) (expression_statement "uVar8 = uVar6;" (assignment_expression "uVar8 = uVar6" (identifier "uVar8") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (param_1 != 0) {\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);\n      cVar4 = sg_all_zeros(param_1 + 0x78,8);\n      if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }\n    }" ({ "{") (expression_statement "cVar3 = sg_all_zeros(param_1 + 0x68,0x10);" (assignment_expression "cVar3 = sg_all_zeros(param_1 + 0x68,0x10)" (identifier "cVar3") (= "=") (call_expression "sg_all_zeros(param_1 + 0x68,0x10)" (identifier "sg_all_zeros") (argument_list "(param_1 + 0x68,0x10)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "cVar4 = sg_all_zeros(param_1 + 0x78,8);" (assignment_expression "cVar4 = sg_all_zeros(param_1 + 0x78,8)" (identifier "cVar4") (= "=") (call_expression "sg_all_zeros(param_1 + 0x78,8)" (identifier "sg_all_zeros") (argument_list "(param_1 + 0x78,8)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') {\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }\n      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }\n      }" ({ "{") (if_statement "if ((int)(uVar6 + 0x13) < (int)param_5) {\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" (if "if") (parenthesized_expression "((int)(uVar6 + 0x13) < (int)param_5)" (( "(") (binary_expression "(int)(uVar6 + 0x13) < (int)param_5" (cast_expression "(int)(uVar6 + 0x13)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + 0x13)" (( "(") (binary_expression "uVar6 + 0x13" (identifier "uVar6") (+ "+") (number_literal "0x13")) () ")"))) (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (compound_statement "{\n          param_4[uVar6] = 1;\n          param_4[uVar6 + 1] = 2;\n          param_4[uVar6 + 3] = 0x10;\n          pbVar1 = param_4 + uVar6 + 4;\n          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);\n          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);\n          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);\n          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);\n          uVar8 = uVar6 + 0x14;\n          if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }\n        }" ({ "{") (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" (identifier "param_4") ([ "[") (identifier "uVar6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "param_4[uVar6 + 3] = 0x10;" (assignment_expression "param_4[uVar6 + 3] = 0x10" (subscript_expression "param_4[uVar6 + 3]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 3" (identifier "uVar6") (+ "+") (number_literal "3")) (] "]")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar1 = param_4 + uVar6 + 4;" (assignment_expression "pbVar1 = param_4 + uVar6 + 4" (identifier "pbVar1") (= "=") (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);" (assignment_expression "*(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68)" (pointer_expression "*(undefined4 *)pbVar1" (* "*") (cast_expression "(undefined4 *)pbVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar1"))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);" (assignment_expression "*(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c)" (pointer_expression "*(undefined4 *)(pbVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 4)" (( "(") (binary_expression "pbVar1 + 4" (identifier "pbVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);" (assignment_expression "*(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70)" (pointer_expression "*(undefined4 *)(pbVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 8)" (( "(") (binary_expression "pbVar1 + 8" (identifier "pbVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);" (assignment_expression "*(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74)" (pointer_expression "*(undefined4 *)(pbVar1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar1 + 0xc)" (( "(") (binary_expression "pbVar1 + 0xc" (identifier "pbVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "uVar8 = uVar6 + 0x14;" (assignment_expression "uVar8 = uVar6 + 0x14" (identifier "uVar8") (= "=") (binary_expression "uVar6 + 0x14" (identifier "uVar6") (+ "+") (number_literal "0x14"))) (; ";")) (if_statement "if ((int)(uVar6 + 0x3b) < (int)param_5) {\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" (if "if") (parenthesized_expression "((int)(uVar6 + 0x3b) < (int)param_5)" (( "(") (binary_expression "(int)(uVar6 + 0x3b) < (int)param_5" (cast_expression "(int)(uVar6 + 0x3b)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + 0x3b)" (( "(") (binary_expression "uVar6 + 0x3b" (identifier "uVar6") (+ "+") (number_literal "0x3b")) () ")"))) (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (compound_statement "{\n            param_4[uVar6 + 0x14] = 3;\n            param_4[uVar6 + 0x15] = 8;\n            param_4[uVar6 + 0x17] = 0x24;\n            pbVar1 = param_4 + uVar6 + 0x18;\n            pbVar1[0] = 0x65;\n            pbVar1[1] = 0x75;\n            pbVar1[2] = 0x69;\n            pbVar1[3] = 0x2e;\n            iVar5 = 0;\n            do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);\n            uVar8 = uVar6 + 0x3c;\n          }" ({ "{") (expression_statement "param_4[uVar6 + 0x14] = 3;" (assignment_expression "param_4[uVar6 + 0x14] = 3" (subscript_expression "param_4[uVar6 + 0x14]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0x14" (identifier "uVar6") (+ "+") (number_literal "0x14")) (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "param_4[uVar6 + 0x15] = 8;" (assignment_expression "param_4[uVar6 + 0x15] = 8" (subscript_expression "param_4[uVar6 + 0x15]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0x15" (identifier "uVar6") (+ "+") (number_literal "0x15")) (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "param_4[uVar6 + 0x17] = 0x24;" (assignment_expression "param_4[uVar6 + 0x17] = 0x24" (subscript_expression "param_4[uVar6 + 0x17]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0x17" (identifier "uVar6") (+ "+") (number_literal "0x17")) (] "]")) (= "=") (number_literal "0x24")) (; ";")) (expression_statement "pbVar1 = param_4 + uVar6 + 0x18;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x18" (identifier "pbVar1") (= "=") (binary_expression "param_4 + uVar6 + 0x18" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" (identifier "pbVar1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" (identifier "pbVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x75")) (; ";")) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" (identifier "pbVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x69")) (; ";")) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" (identifier "pbVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            } while (iVar5 != 0x10);" (do "do") (compound_statement "{\n              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));\n              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];\n              iVar5 = iVar5 + 1;\n            }" ({ "{") (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" (identifier "__snprintf_chk") (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                             *(undefined1 *)(param_1 + 0x68 + iVar5))" (( "(") (identifier "local_28") (, ",") (number_literal "4") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" (" """) (string_content "sg_ll_get_lba_status") (" """)) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "6")) (, ",") (pointer_expression "*(undefined1 *)(param_1 + 0x68 + iVar5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x68 + iVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68 + iVar5)" (( "(") (binary_expression "param_1 + 0x68 + iVar5" (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (+ "+") (identifier "iVar5")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" (* "*") (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x1c)" (( "(") (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x1c" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2"))) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0x10)" (( "(") (binary_expression "iVar5 != 0x10" (identifier "iVar5") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (expression_statement "uVar8 = uVar6 + 0x3c;" (assignment_expression "uVar8 = uVar6 + 0x3c" (identifier "uVar8") (= "=") (binary_expression "uVar6 + 0x3c" (identifier "uVar6") (+ "+") (number_literal "0x3c"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" (else "else") (if_statement "if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" (if "if") (parenthesized_expression "((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5))" (( "(") (binary_expression "(cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)" (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((int)(uVar6 + 0xb) < (int)param_5)" (( "(") (binary_expression "(int)(uVar6 + 0xb) < (int)param_5" (cast_expression "(int)(uVar6 + 0xb)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + 0xb)" (( "(") (binary_expression "uVar6 + 0xb" (identifier "uVar6") (+ "+") (number_literal "0xb")) () ")"))) (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")"))) () ")")) (compound_statement "{\n        param_4[uVar6] = 1;\n        param_4[uVar6 + 1] = 2;\n        param_4[uVar6 + 3] = 8;\n        uVar2 = *(undefined4 *)(param_1 + 0x7c);\n        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);\n        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;\n        uVar8 = uVar6 + 0xc;\n        if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }\n      }" ({ "{") (expression_statement "param_4[uVar6] = 1;" (assignment_expression "param_4[uVar6] = 1" (subscript_expression "param_4[uVar6]" (identifier "param_4") ([ "[") (identifier "uVar6") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_4[uVar6 + 1] = 2;" (assignment_expression "param_4[uVar6 + 1] = 2" (subscript_expression "param_4[uVar6 + 1]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "param_4[uVar6 + 3] = 8;" (assignment_expression "param_4[uVar6 + 3] = 8" (subscript_expression "param_4[uVar6 + 3]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 3" (identifier "uVar6") (+ "+") (number_literal "3")) (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x7c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x7c)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78)" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(param_4 + uVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + uVar6 + 4)" (( "(") (binary_expression "param_4 + uVar6 + 4" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2;" (assignment_expression "*(undefined4 *)(param_4 + uVar6 + 8) = uVar2" (pointer_expression "*(undefined4 *)(param_4 + uVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(param_4 + uVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + uVar6 + 8)" (( "(") (binary_expression "param_4 + uVar6 + 8" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar8 = uVar6 + 0xc;" (assignment_expression "uVar8 = uVar6 + 0xc" (identifier "uVar8") (= "=") (binary_expression "uVar6 + 0xc" (identifier "uVar6") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if ((int)(uVar6 + 0x23) < (int)param_5) {\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" (if "if") (parenthesized_expression "((int)(uVar6 + 0x23) < (int)param_5)" (( "(") (binary_expression "(int)(uVar6 + 0x23) < (int)param_5" (cast_expression "(int)(uVar6 + 0x23)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + 0x23)" (( "(") (binary_expression "uVar6 + 0x23" (identifier "uVar6") (+ "+") (number_literal "0x23")) () ")"))) (< "<") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) () ")")) (compound_statement "{\n          param_4[uVar6 + 0xc] = 3;\n          param_4[uVar6 + 0xd] = 8;\n          param_4[uVar6 + 0xf] = 0x14;\n          pbVar1 = param_4 + uVar6 + 0x10;\n          pbVar1[0] = 0x65;\n          pbVar1[1] = 0x75;\n          pbVar1[2] = 0x69;\n          pbVar1[3] = 0x2e;\n          iVar5 = 0;\n          do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);\n          uVar8 = uVar6 + 0x24;\n        }" ({ "{") (expression_statement "param_4[uVar6 + 0xc] = 3;" (assignment_expression "param_4[uVar6 + 0xc] = 3" (subscript_expression "param_4[uVar6 + 0xc]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0xc" (identifier "uVar6") (+ "+") (number_literal "0xc")) (] "]")) (= "=") (number_literal "3")) (; ";")) (expression_statement "param_4[uVar6 + 0xd] = 8;" (assignment_expression "param_4[uVar6 + 0xd] = 8" (subscript_expression "param_4[uVar6 + 0xd]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0xd" (identifier "uVar6") (+ "+") (number_literal "0xd")) (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "param_4[uVar6 + 0xf] = 0x14;" (assignment_expression "param_4[uVar6 + 0xf] = 0x14" (subscript_expression "param_4[uVar6 + 0xf]" (identifier "param_4") ([ "[") (binary_expression "uVar6 + 0xf" (identifier "uVar6") (+ "+") (number_literal "0xf")) (] "]")) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "pbVar1 = param_4 + uVar6 + 0x10;" (assignment_expression "pbVar1 = param_4 + uVar6 + 0x10" (identifier "pbVar1") (= "=") (binary_expression "param_4 + uVar6 + 0x10" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "pbVar1[0] = 0x65;" (assignment_expression "pbVar1[0] = 0x65" (subscript_expression "pbVar1[0]" (identifier "pbVar1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "pbVar1[1] = 0x75;" (assignment_expression "pbVar1[1] = 0x75" (subscript_expression "pbVar1[1]" (identifier "pbVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x75")) (; ";")) (expression_statement "pbVar1[2] = 0x69;" (assignment_expression "pbVar1[2] = 0x69" (subscript_expression "pbVar1[2]" (identifier "pbVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x69")) (; ";")) (expression_statement "pbVar1[3] = 0x2e;" (assignment_expression "pbVar1[3] = 0x2e" (subscript_expression "pbVar1[3]" (identifier "pbVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          } while (iVar5 != 8);" (do "do") (compound_statement "{\n            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));\n            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];\n            iVar5 = iVar5 + 1;\n          }" ({ "{") (expression_statement "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5));" (call_expression "__snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" (identifier "__snprintf_chk") (argument_list "(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,\n                           *(undefined1 *)(param_1 + 0x78 + iVar5))" (( "(") (identifier "local_28") (, ",") (number_literal "4") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (binary_expression ""sg_ll_get_lba_status" + unaff_EBX + 6" (binary_expression ""sg_ll_get_lba_status" + unaff_EBX" (string_literal ""sg_ll_get_lba_status"" (" """) (string_content "sg_ll_get_lba_status") (" """)) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "6")) (, ",") (pointer_expression "*(undefined1 *)(param_1 + 0x78 + iVar5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x78 + iVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78 + iVar5)" (( "(") (binary_expression "param_1 + 0x78 + iVar5" (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) (+ "+") (identifier "iVar5")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];" (assignment_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0]" (pointer_expression "*(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" (* "*") (cast_expression "(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + uVar6 + iVar5 * 2 + 0x14)" (( "(") (binary_expression "param_4 + uVar6 + iVar5 * 2 + 0x14" (binary_expression "param_4 + uVar6 + iVar5 * 2" (binary_expression "param_4 + uVar6" (identifier "param_4") (+ "+") (identifier "uVar6")) (+ "+") (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2"))) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 8)" (( "(") (binary_expression "iVar5 != 8" (identifier "iVar5") (!= "!=") (number_literal "8")) () ")")) (; ";")) (expression_statement "uVar8 = uVar6 + 0x24;" (assignment_expression "uVar8 = uVar6 + 0x24" (identifier "uVar8") (= "=") (binary_expression "uVar6 + 0x24" (identifier "uVar6") (+ "+") (number_literal "0x24"))) (; ";")) (} "}"))) (} "}"))))) (} "}"))) (} "}")))) (if_statement "if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002f100();\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0002f100();\n  }" ({ "{") (expression_statement "FUN_0002f100();" (call_expression "FUN_0002f100()" (identifier "FUN_0002f100") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1
              (uint8_t *var_4,uint8_t *var_13,int pdt,int var_6,uint8_t *var_2,
              int var_3)

{
  uint8_t *var_10;
  int var_16;
  type_1 uVar3;
  type_2 _Var4;
  type_2 _Var5;
  int var_7;
  type_3 var_11;
  int var_8;
  type_3 var_12;
  int var_1;
  type_3 var_9;
  char b [4];
  
  var_16 = *(int *)(var_1 + 0x14);
  if ((var_2 == (uint8_t *)0x0 || var_3 < 0x38) || (var_4 == (uint8_t *)0x0)) {
LAB_0002a65f:
    var_12 = 0;
  }
  else {
    var_5(var_2,0,var_3);
    var_2[1] = 0x83;
    *var_2 = (type_4)pdt & 0x1f;
    if (var_6 < 0) {
      var_2[4] = '\x02';
      var_2[5] = '!';
    }
    else {
      var_2[5] = 0xa1;
      var_2[4] = (type_4)(var_6 << 4) | 2;
    }
    var_2[8] = 'N';
    var_2[9] = 'V';
    var_2[10] = 'M';
    var_2[0xb] = 'e';
    var_7 = 0x28;
    var_2[0xc] = ' ';
    var_2[0xd] = ' ';
    var_2[0xe] = ' ';
    var_2[0xf] = ' ';
    *(type_1 *)(var_2 + 0x10) = *(type_1 *)(var_4 + 0x18);
    *(type_1 *)(var_2 + 0x14) = *(type_1 *)(var_4 + 0x1c);
    *(type_1 *)(var_2 + 0x18) = *(type_1 *)(var_4 + 0x20);
    *(type_1 *)(var_2 + 0x1c) = *(type_1 *)(var_4 + 0x24);
    *(type_1 *)(var_2 + 0x20) = *(type_1 *)(var_4 + 0x28);
    *(type_1 *)(var_2 + 0x24) = *(type_1 *)(var_4 + 0x2c);
    *(type_1 *)(var_2 + 0x28) = *(type_1 *)(var_4 + 0x30);
    *(type_1 *)(var_2 + 0x2c) = *(type_1 *)(var_4 + 0x34);
    *(type_1 *)(var_2 + 0x30) = *(type_1 *)(var_4 + 0x38);
    *(type_1 *)(var_2 + 0x34) = *(type_1 *)(var_4 + 0x3c);
    do {
      if (var_2[var_7 + 0xf] != ' ') {
        if (var_7 == 0x28) {
          var_9 = 0x38;
          var_8 = 0x4b;
        }
        else {
          var_8 = var_7 + 0x24;
          var_9 = var_7 + 0x11;
        }
        if (var_8 < var_3) goto LAB_0002a742;
        goto LAB_0002a65f;
      }
      var_2[var_7 + 0xf] = '_';
      var_7 = var_7 + -1;
    } while (var_7 != 0);
    var_9 = 0x11;
LAB_0002a742:
    var_10 = var_2 + var_9;
    *(type_1 *)var_10 = *(type_1 *)(var_4 + 4);
    *(type_1 *)(var_10 + 4) = *(type_1 *)(var_4 + 8);
    *(type_1 *)(var_10 + 8) = *(type_1 *)(var_4 + 0xc);
    *(type_1 *)(var_10 + 0xc) = *(type_1 *)(var_4 + 0x10);
    *(type_1 *)(var_10 + 0x10) = *(type_1 *)(var_4 + 0x14);
    var_11 = var_9 + 0x14;
    do {
      var_12 = var_11;
      if (var_2[var_11 - 1] != ' ') break;
      var_2[var_11 - 1] = '\0';
      var_11 = var_11 - 1;
      var_12 = var_9;
    } while (var_9 != var_11);
    if ((var_12 & 3) != 0) {
      var_11 = ((int)var_11 >> 2) * 4 + 4;
    }
    var_2[7] = (char)var_11 + 0xf8;
    var_12 = var_11;
    if (var_13 != (uint8_t *)0x0) {
      _Var4 = var_14(var_13 + 0x68,0x10);
      _Var5 = var_14(var_13 + 0x78,8);
      if (_Var4) {
        if ((!_Var5) && ((int)(var_11 + 0xb) < var_3)) {
          var_2[var_11] = '\x01';
          var_2[var_11 + 1] = '\x02';
          var_2[var_11 + 3] = '\b';
          uVar3 = *(type_1 *)(var_13 + 0x7c);
          *(type_1 *)(var_2 + var_11 + 4) = *(type_1 *)(var_13 + 0x78);
          *(type_1 *)(var_2 + var_11 + 8) = uVar3;
          var_12 = var_11 + 0xc;
          if ((int)(var_11 + 0x23) < var_3) {
            var_2[var_11 + 0xc] = '\x03';
            var_2[var_11 + 0xd] = '\b';
            var_2[var_11 + 0xf] = '\x14';
            var_10 = var_2 + var_11 + 0x10;
            var_10[0] = 'e';
            var_10[1] = 'u';
            var_10[2] = 'i';
            var_10[3] = '.';
            var_7 = 0;
            do {
              var_15(b,4,1,4,&DAT_0003cf13,var_13[var_7 + 0x78]);
              *(type_5 *)(var_2 + var_11 + var_7 * 2 + 0x14) = b._0_2_;
              var_7 = var_7 + 1;
            } while (var_7 != 8);
            var_12 = var_11 + 0x24;
          }
        }
      }
      else if ((int)(var_11 + 0x13) < var_3) {
        var_2[var_11] = '\x01';
        var_2[var_11 + 1] = '\x02';
        var_2[var_11 + 3] = '\x10';
        var_10 = var_2 + var_11 + 4;
        *(type_1 *)var_10 = *(type_1 *)(var_13 + 0x68);
        *(type_1 *)(var_10 + 4) = *(type_1 *)(var_13 + 0x6c);
        *(type_1 *)(var_10 + 8) = *(type_1 *)(var_13 + 0x70);
        *(type_1 *)(var_10 + 0xc) = *(type_1 *)(var_13 + 0x74);
        var_12 = var_11 + 0x14;
        if ((int)(var_11 + 0x3b) < var_3) {
          var_2[var_11 + 0x14] = '\x03';
          var_2[var_11 + 0x15] = '\b';
          var_2[var_11 + 0x17] = '$';
          var_10 = var_2 + var_11 + 0x18;
          var_10[0] = 'e';
          var_10[1] = 'u';
          var_10[2] = 'i';
          var_10[3] = '.';
          var_7 = 0;
          do {
            var_15(b,4,1,4,&DAT_0003cf13,var_13[var_7 + 0x68]);
            *(type_5 *)(var_2 + var_11 + var_7 * 2 + 0x1c) = b._0_2_;
            var_7 = var_7 + 1;
          } while (var_7 != 0x10);
          var_12 = var_11 + 0x3c;
        }
      }
    }
  }
  if (var_16 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_17();
  }
  return var_12;
}


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

uint MASKED(int param_1,byte param_2,int param_3,byte *param_4,size_t param_5)

{
  byte *pbVar1;
  undefined4 uVar2;
  char cVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  int unaff_EBX;
  uint uVar8;
  int in_GS_OFFSET;
  int unaff_retaddr;
  uint local_3c;
  undefined2 local_28 [2];
  int local_24;
  undefined4 uStack_14;
  
  uStack_14 = 0x2a629;
  entry();
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  if ((param_4 == (byte *)0x0 || (int)param_5 < 0x38) || (unaff_retaddr == 0)) {
LAB_0002a65f:
    uVar8 = 0;
  }
  else {
    memset(param_4,0,param_5);
    param_4[1] = 0x83;
    *param_4 = param_2 & 0x1f;
    if (param_3 < 0) {
      param_4[4] = 2;
      param_4[5] = 0x21;
    }
    else {
      param_4[5] = 0xa1;
      param_4[4] = (byte)(param_3 << 4) | 2;
    }
    param_4[8] = 0x4e;
    param_4[9] = 0x56;
    param_4[10] = 0x4d;
    param_4[0xb] = 0x65;
    iVar5 = 0x28;
    param_4[0xc] = 0x20;
    param_4[0xd] = 0x20;
    param_4[0xe] = 0x20;
    param_4[0xf] = 0x20;
    *(undefined4 *)(param_4 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x18);
    *(undefined4 *)(param_4 + 0x14) = *(undefined4 *)(unaff_retaddr + 0x1c);
    *(undefined4 *)(param_4 + 0x18) = *(undefined4 *)(unaff_retaddr + 0x20);
    *(undefined4 *)(param_4 + 0x1c) = *(undefined4 *)(unaff_retaddr + 0x24);
    *(undefined4 *)(param_4 + 0x20) = *(undefined4 *)(unaff_retaddr + 0x28);
    *(undefined4 *)(param_4 + 0x24) = *(undefined4 *)(unaff_retaddr + 0x2c);
    *(undefined4 *)(param_4 + 0x28) = *(undefined4 *)(unaff_retaddr + 0x30);
    *(undefined4 *)(param_4 + 0x2c) = *(undefined4 *)(unaff_retaddr + 0x34);
    *(undefined4 *)(param_4 + 0x30) = *(undefined4 *)(unaff_retaddr + 0x38);
    *(undefined4 *)(param_4 + 0x34) = *(undefined4 *)(unaff_retaddr + 0x3c);
    do {
      if (param_4[iVar5 + 0xf] != 0x20) {
        if (iVar5 == 0x28) {
          local_3c = 0x38;
          iVar7 = 0x4b;
        }
        else {
          iVar7 = iVar5 + 0x24;
          local_3c = iVar5 + 0x11;
        }
        if (iVar7 < (int)param_5) goto LAB_0002a742;
        goto LAB_0002a65f;
      }
      param_4[iVar5 + 0xf] = 0x5f;
      iVar5 = iVar5 + -1;
    } while (iVar5 != 0);
    local_3c = 0x11;
LAB_0002a742:
    pbVar1 = param_4 + local_3c;
    *(undefined4 *)pbVar1 = *(undefined4 *)(unaff_retaddr + 4);
    *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(unaff_retaddr + 8);
    *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(unaff_retaddr + 0xc);
    *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(unaff_retaddr + 0x10);
    *(undefined4 *)(pbVar1 + 0x10) = *(undefined4 *)(unaff_retaddr + 0x14);
    uVar6 = local_3c + 0x14;
    do {
      uVar8 = uVar6;
      if (param_4[uVar6 - 1] != 0x20) break;
      param_4[uVar6 - 1] = 0;
      uVar6 = uVar6 - 1;
      uVar8 = local_3c;
    } while (local_3c != uVar6);
    if ((uVar8 & 3) != 0) {
      uVar6 = ((int)uVar6 >> 2) * 4 + 4;
    }
    param_4[7] = (char)uVar6 - 8;
    uVar8 = uVar6;
    if (param_1 != 0) {
      cVar3 = sg_all_zeros(param_1 + 0x68,0x10);
      cVar4 = sg_all_zeros(param_1 + 0x78,8);
      if (cVar3 == '\0') {
        if ((int)(uVar6 + 0x13) < (int)param_5) {
          param_4[uVar6] = 1;
          param_4[uVar6 + 1] = 2;
          param_4[uVar6 + 3] = 0x10;
          pbVar1 = param_4 + uVar6 + 4;
          *(undefined4 *)pbVar1 = *(undefined4 *)(param_1 + 0x68);
          *(undefined4 *)(pbVar1 + 4) = *(undefined4 *)(param_1 + 0x6c);
          *(undefined4 *)(pbVar1 + 8) = *(undefined4 *)(param_1 + 0x70);
          *(undefined4 *)(pbVar1 + 0xc) = *(undefined4 *)(param_1 + 0x74);
          uVar8 = uVar6 + 0x14;
          if ((int)(uVar6 + 0x3b) < (int)param_5) {
            param_4[uVar6 + 0x14] = 3;
            param_4[uVar6 + 0x15] = 8;
            param_4[uVar6 + 0x17] = 0x24;
            pbVar1 = param_4 + uVar6 + 0x18;
            pbVar1[0] = 0x65;
            pbVar1[1] = 0x75;
            pbVar1[2] = 0x69;
            pbVar1[3] = 0x2e;
            iVar5 = 0;
            do {
              __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,
                             *(undefined1 *)(param_1 + 0x68 + iVar5));
              *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x1c) = local_28[0];
              iVar5 = iVar5 + 1;
            } while (iVar5 != 0x10);
            uVar8 = uVar6 + 0x3c;
          }
        }
      }
      else if ((cVar4 == '\0') && ((int)(uVar6 + 0xb) < (int)param_5)) {
        param_4[uVar6] = 1;
        param_4[uVar6 + 1] = 2;
        param_4[uVar6 + 3] = 8;
        uVar2 = *(undefined4 *)(param_1 + 0x7c);
        *(undefined4 *)(param_4 + uVar6 + 4) = *(undefined4 *)(param_1 + 0x78);
        *(undefined4 *)(param_4 + uVar6 + 8) = uVar2;
        uVar8 = uVar6 + 0xc;
        if ((int)(uVar6 + 0x23) < (int)param_5) {
          param_4[uVar6 + 0xc] = 3;
          param_4[uVar6 + 0xd] = 8;
          param_4[uVar6 + 0xf] = 0x14;
          pbVar1 = param_4 + uVar6 + 0x10;
          pbVar1[0] = 0x65;
          pbVar1[1] = 0x75;
          pbVar1[2] = 0x69;
          pbVar1[3] = 0x2e;
          iVar5 = 0;
          do {
            __snprintf_chk(local_28,4,1,4,"sg_ll_get_lba_status" + unaff_EBX + 6,
                           *(undefined1 *)(param_1 + 0x78 + iVar5));
            *(undefined2 *)(param_4 + uVar6 + iVar5 * 2 + 0x14) = local_28[0];
            iVar5 = iVar5 + 1;
          } while (iVar5 != 8);
          uVar8 = uVar6 + 0x24;
        }
      }
    }
  }
  if (local_24 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002f100();
  }
  return uVar8;
}

