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