Newer
Older
AMI-Aptio-BIOS-Reversed / DxeIpl / DxeIplZeroMem.c
@Ajax Dong Ajax Dong 2 days ago 655 bytes Init
/* DxeIplZeroMem @ 0xffc15298 size=0x27 */
int DxeIplZeroMem()
{
  unsigned __int32 v0; // eax
  unsigned __int64 v1; // rax
  _BYTE retaddr[8]; // [esp+0h] [ebp+0h]

  _disable(); /*0xffc15298*/
  *(_DWORD *)retaddr = &byte_FFC152BF; /*0xffc15299*/
  v0 = __readcr4(); /*0xffc152a0*/
  LOBYTE(v0) = v0 | 0x20; /*0xffc152a3*/
  __writecr4(v0); /*0xffc152a5*/
  v1 = __readmsr(0xC0000080); /*0xffc152ad*/
  BYTE1(v1) |= 1u; /*0xffc152af*/
  __writemsr(0xC0000080, v1); /*0xffc152b2*/
  LODWORD(v1) = __readcr0(); /*0xffc152b4*/
  __writecr0(v1 | 0x80000000); /*0xffc152bb*/
  return MK_FP(*(_WORD *)retaddr, *(_DWORD *)retaddr)(-1073741696, HIDWORD(v1));
}