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