MiInitializeImageHotPatchContext
NTSTATUS __stdcall MiInitializeImageHotPatchContext(INT64 a1, INT64 a2){
NTSTATUS result;
unsigned __int64 v5;
unsigned __int64 v6;
unsigned __int64 v7;
result = (unsigned int)memset((VOID *)a1, 0i64, 0x90u);
if( a2 )
{
*(_QWORD *)a1 = a2;
v5 = (*(unsigned int *)(a2 + 24) | ((unsigned __int64)*(unsigned __int8 *)(a2 + 32) << 32)) << 12;
*(_QWORD *)(a1 + 8) = v5;
v6 = ((*(unsigned int *)(a2 + 28) | ((unsigned __int64)*(unsigned __int8 *)(a2 + 33) << 32)) << 12) | 0xFFF;
*(_QWORD *)(a1 + 16) = v6 + 1;
result = a1 + 120;
v7 = ((unsigned __int64)*(unsigned int *)(***(_QWORD ***)(a2 + 72) + 8i64) << 12)
+ ((*(unsigned int *)(a2 + 24) | ((unsigned __int64)*(unsigned __int8 *)(a2 + 32) << 32)) << 12);
*(_QWORD *)(a1 + 104) = v5;
*(_QWORD *)(a1 + 24) = v7;
*(_QWORD *)(a1 + 112) = v6;
*(_DWORD *)(a1 + 32) = v7 - v5;
*(_QWORD *)(a1 + 128) = a1 + 120;
*(_QWORD *)(a1 + 120) = a1 + 120;
}
return result;
}Referenced by:
MiPerformImageHotPatch