SecureDump_Get_SecureDumpHeader
INT64 __fastcall SecureDump_Get_SecureDumpHeader(INT64 a1, INT64 a2, UINT64 a3){
__int64 v5;
int v6;
unsigned int v7;
int v8;
if( !byte_140C4C594 )
return 3221225485i64;
if( (unsigned int)a3 < dword_140C4C5E0 )
return 3221225485i64;
v5 = (unsigned int)a3;
if( (unsigned int)a3 < pcbResult + (unsigned __int64)*((unsigned int *)dwFlags + 1) + 4184 )
return 3221225485i64;
memset(a2, 0i64);
*(_DWORD *)(a2 + 8) = 1;
*(_DWORD *)(a2 + 12) = dword_140C4C5E0;
*(_DWORD *)a2 = *(_DWORD *)a1;
*(_DWORD *)(a2 + 4) = *(_DWORD *)(a1 + 4);
*(_DWORD *)(a2 + 48) = *(_DWORD *)(a1 + 48);
*(_DWORD *)(a2 + 3992) = *(_DWORD *)(a1 + 3992);
*(_QWORD *)(a2 + 4000) = (*(_QWORD *)(a1 + 4000) + v5 + 4095) & 0xFFFFFFFFFFFFF000ui64;
*(_DWORD *)(a2 + 4176) = *(_DWORD *)(a1 + 4176) | 0x100;
v6 = *(_DWORD *)(a1 + 56);
*(_QWORD *)(a2 + 64) = 0i64;
*(_QWORD *)(a2 + 72) = 0i64;
*(_QWORD *)(a2 + 80) = 0i64;
*(_QWORD *)(a2 + 88) = 0i64;
*(_DWORD *)(a2 + 56) = v6;
*(_DWORD *)(a2 + 20) = 4184;
*(_DWORD *)(a2 + 16) = pcbResult;
memmove((UINT8 *)(a2 + 4184), (UINT8 *)qword_140C4C5B8, pcbResult);
v7 = *(_DWORD *)(a2 + 16) + *(_DWORD *)(a2 + 20);
*(_DWORD *)(a2 + 40) = cbInput;
v8 = dword_140C4C5D8;
*(_DWORD *)(a2 + 28) = v7;
*(_DWORD *)(a2 + 32) = v8;
*(_DWORD *)(a2 + 24) = *((_DWORD *)dwFlags + 1);
memmove((UINT8 *)(a2 + v7), (UINT8 *)*(&dwFlags + 1), *((unsigned int *)dwFlags + 1));
*(_DWORD *)(a2 + 36) = dword_140C4C5DC;
return 0i64;
}Referenced by:
IopLiveDumpWriteDumpFile
IopLiveDumpWriteDumpFileWithExtraPages