Function at 0x18000d550
Capabilities:
Print debug messages

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea rcx, [rsp + 0x90]
call fcn.18000d310
mov rax, qword [rsp + 0x90]
movzx ebx, al
shl ebx, 0x10
movzx edx, byte [rsp + 0x91]
or ebx, edx
mov dword [0x18002d3e0], ebx
mov byte [0x180030245], dl
mov byte [0x180030244], al
mov eax, dword [rsp + 0x94]
mov dword [0x180030248], eax
xor edx, edx
lea rcx, [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoOpen
test eax, eax
js 0x18000dd1c
lea r8, str.ExAllocatePoolWithTag
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800300e0], rax
lea r8, str.ExFreePoolWithTag
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800300e8], rax
lea r8, str.ExSetTimerResolution
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800300f0], rax
lea r8, str.ExAllocateTimer
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800300f8], rax
lea r8, str.ExDeleteTimer
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030100], rax
lea r8, str.ExSetTimer
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030108], rax
lea r8, str.ExCancelTimer
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030110], rax
lea r8, str.KeFlushQueuedDpcs
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030118], rax
lea r8, str.KeIpiGenericCall
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030138], rax
lea r8, str.KeSetTargetProcessorDpcEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030140], rax
lea r8, str.KeInitializeAffinityEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030148], rax
lea r8, str.KeAddProcessorAffinityEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030150], rax
lea r8, str.KeGetProcessorIndexFromNumber
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030158], rax
lea r8, str.KeGetProcessorNumberFromIndex
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030160], rax
lea r8, str.KeGetCurrentProcessorNumberEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030168], rax
lea r8, str.KeQueryActiveProcessors
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030170], rax
lea r8, str.KeQueryMaximumProcessorCount
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030178], rax
lea r8, str.KeQueryMaximumProcessorCountEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030180], rax
lea r8, str.KeQueryMaximumGroupCount
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030188], rax
lea r8, str.KeQueryActiveProcessorCount
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030190], rax
lea r8, str.KeQueryActiveProcessorCountEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030198], rax
lea r8, str.KeQueryLogicalProcessorRelationship
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301a0], rax
lea r8, str.KeRegisterProcessorChangeCallback
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301a8], rax
lea r8, str.KeDeregisterProcessorChangeCallback
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301b0], rax
lea r8, str.KeSetImportanceDpc
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301b8], rax
lea r8, str.KeSetTargetProcessorDpc
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301c0], rax
lea r8, str.KeInitializeTimerEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301c8], rax
lea r8, str.KeShouldYieldProcessor
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301d0], rax
lea r8, str.MmProtectMdlSystemAddress
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301d8], rax
lea r8, str.MmAllocatePagesForMdl
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301e0], rax
lea r8, str.MmAllocatePagesForMdlEx
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301e8], rax
lea r8, str.MmFreePagesFromMdl
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301f0], rax
lea r8, str.MmMapLockedPagesSpecifyCache
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x1800301f8], rax
lea r8, str.MmAllocateContiguousMemorySpecifyCache
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030200], rax
lea r8, str.MmSecureVirtualMemory
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030208], rax
lea r8, str.MmUnsecureVirtualMemory
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030210], rax
lea r8, str.RtlGetVersion
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030220], rax
lea r8, str.KeQueryInterruptTimePrecise
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030228], rax
lea r8, str.KeQuerySystemTimePrecise
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030230], rax
lea r8, str.HalRequestIpi
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030120], rax
mov qword [0x180030128], rax
lea r8, str.MmHighestUserAddress
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030250], rax
lea r8, str.MmSystemRangeStart
xor edx, edx
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoGetSymbol
mov qword [0x180030258], rax
mov rcx, qword [rsp + 0x88]
call sym.VBoxVideo.dll_RTR0DbgKrnlInfoRelease
lea rcx, [rsp + 0x90]
call fcn.18000d310
mov rax, qword [rsp + 0x90]
movzx ebx, al
shl ebx, 0x10
movzx edx, byte [rsp + 0x91]
or ebx, edx
mov dword [0x18002d3e0], ebx
mov byte [0x180030245], dl
mov byte [0x180030244], al
mov eax, dword [rsp + 0x94]
mov dword [0x180030248], eax
mov r8, cr8
mov qword [rsp + 0x98], r8
mov byte [rsp + 0x80], r8b
mov eax, 2
mov cr8, rax
xor eax, eax
xor ecx, ecx
cpuid
mov dword [rsp + 0x34], eax
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x2c], edx
mov byte [rsp + 0x34], 0
mov rax, qword gs:[0x18]
mov r15, qword [rax + 0x20]
mov qword [rsp + 0x20], r15
jmp 0x18000db39
test r15, r15
je 0x18000dcca
mov r14d, 0xffffffff
mov r12d, 0x7fffffff
xor r11d, r11d
movzx edi, byte [rsp + 0x92]
movzx ecx, dil
and cl, 1
mov byte [rsp + 0x80], cl
lea rsi, [0x180024964]
mov r13d, dword [rsp + 0x94]
lea rdx, [0x180024960]
movzx ebx, byte [rsi - 2]
movzx eax, bl
and al, 1
cmp al, cl
jne 0x18000dc3d
test dil, 2
je 0x18000db9d
test bl, 2
je 0x18000dc3d
mov ecx, dword [rsi]
mov eax, r13d
sub eax, ecx
jns 0x18000dbab
mov eax, ecx
sub eax, r13d
test eax, eax
jne 0x18000dbd4
movzx edx, dil
shr dl, 2
movzx ecx, bl
shr cl, 2
cmp cl, dl
je 0x18000dc4f
cmp dl, 0x3f
je 0x18000dc4f
lea rdx, [0x180024960]
cmp eax, r12d
jl 0x18000dc2f
cmp r14d, 0xffffffff
je 0x18000dc2f
cmp eax, r12d
jne 0x18000dc35
movzx ecx, dil
and cl, 0xfc
cmp cl, 0xfc
je 0x18000dc35
mov r9d, ebx
shr r9d, 2
mov r10d, edi
shr r10d, 2
mov r8d, r9d
sub r8d, r10d
mov ecx, r14d
shl rcx, 5
movzx edx, byte [rcx + rdx + 2]
shr edx, 2
mov ebx, edx
mov ecx, r10d
sub ecx, edx
sub ebx, r10d
cmovs ebx, ecx
sub r10d, r9d
test r8d, r8d
cmovs r8d, r10d
cmp r8d, ebx
jge 0x18000dc35
mov r12d, eax
mov r14d, r11d
movzx ecx, byte [rsp + 0x80]
inc r11d
add rsi, 0x20
cmp r11d, 0x14
jae 0x18000dc52
jmp 0x18000db76
mov r14d, r11d
cmp r14d, 0x14
jae 0x18000dcc1
mov ebx, r14d
lea rdi, [0x180024960]
movsxd rcx, ebx
shl rcx, 5
add rcx, rdi
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x28]
mov rdx, r15
call fcn.18000d450
test al, al
jne 0x18000dcd6
inc ebx
cmp ebx, 0x14
jb 0x18000dc62
test al, al
jne 0x18000dcd6
sub r14d, 1
js 0x18000dcd6
movsxd rcx, r14d
shl rcx, 5
add rcx, rdi
lea r9, [rsp + 0x90]
lea r8, [rsp + 0x28]
mov rdx, r15
call fcn.18000d450
test al, al
jne 0x18000dcd6
sub r14d, 1
jns 0x18000dc96
jmp 0x18000dcd6
lea rcx, str.IPRT:_Failed_to_locate_data_set._n
jmp 0x18000dcd1
lea rcx, str.IPRT:_Failed_to_get_PCBR_pointer._n
call sub.ntoskrnl.exe_DbgPrint
movzx eax, byte [rsp + 0x98]
mov cr8, rax
lea rcx, [rsp + 0x90]
call fcn.1800199f0
mov ebx, eax
test eax, eax
jns 0x18000dd1a
call fcn.18001a9e0
mov edx, ebx
lea rcx, str.IPRT:_Fatal:_rtR0MpNtInit_failed:__d_n
call sub.ntoskrnl.exe_DbgPrint
mov eax, ebx
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret