SecureDump_Encrypt_DmpData

NTSTATUS __stdcall SecureDump_Encrypt_DmpData(INT64 a1, UINT64 a2, INT64 a3, UINT64 a4, UINT64 *a5){
  UINT64 v5; 
  NTSTATUS v9; 
  UINT32 cbOutput; 
  UINT32 pcbResult; 
  UCHAR pbIV[8]; 

  v5 = 0i64;
  v9 = -1073741823;
  if( byte_140C4C594 )
  {
    if( !a1 || !a3 && a4 || (cbOutput = pbInput, a2 % pbInput) || a2 < pbInput )
    {
      v9 = -1073741811;
    }
    else if( a4 >= a2 )
    {
      pcbResult = 0;
      *(_QWORD *)pbIV = 0i64;
      if( a2 )
      {
        do
        {
          v9 = (unsigned int)BCryptEncrypt(
                               hObject,
                               (PUCHAR)(a1 + v5),
                               cbOutput,
                               0i64,
                               pbIV,
                               8u,
                               (PUCHAR)(a3 + v5),
                               cbOutput,
                               &pcbResult,
                               0);
          if( v9 < 0 )
            break;
          v5 += pcbResult;
          cbOutput = pbInput;
          if( pcbResult != pbInput )
          {
            v9 = -1073741823;
            break;
          }
        }
        while( v5 < a2 );
      }
    }
    else
    {
      v5 = a2;
      v9 = -2147483643;
    }
  }
  else
  {
    v9 = -1073741808;
  }
  if( a5 )
    *a5 = v5;
  return v9;
}

Referenced by:

IopLiveDumpWriteBuffer