Function at 0x140013820
Capabilities:
Print debug messages

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea rcx, [rsp + 0xa0]
call fcn.1400135e0
mov rax, qword [rsp + 0xa0]
movzx ebx, al
shl ebx, 0x10
movzx edx, byte [rsp + 0xa1]
or ebx, edx
mov dword [0x14002dfd8], ebx
mov byte [0x14002e46d], dl
mov byte [0x14002e46c], al
mov eax, dword [rsp + 0xa4]
mov dword [0x14002e470], eax
xor edx, edx
lea rcx, [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoOpen
test eax, eax
js 0x14001404c
lea r8, str.ExAllocatePoolWithTag
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e308], rax
lea r8, str.ExFreePoolWithTag
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e310], rax
lea r8, str.ExSetTimerResolution
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e318], rax
lea r8, str.ExAllocateTimer
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e320], rax
lea r8, str.ExDeleteTimer
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e328], rax
lea r8, str.ExSetTimer
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e330], rax
lea r8, str.ExCancelTimer
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e338], rax
lea r8, str.KeFlushQueuedDpcs
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e340], rax
lea r8, str.KeIpiGenericCall
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e360], rax
lea r8, str.KeSetTargetProcessorDpcEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e368], rax
lea r8, str.KeInitializeAffinityEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e370], rax
lea r8, str.KeAddProcessorAffinityEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e378], rax
lea r8, str.KeGetProcessorIndexFromNumber
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e380], rax
lea r8, str.KeGetProcessorNumberFromIndex
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e388], rax
lea r8, str.KeGetCurrentProcessorNumberEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e390], rax
lea r8, str.KeQueryActiveProcessors
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e398], rax
lea r8, str.KeQueryMaximumProcessorCount
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3a0], rax
lea r8, str.KeQueryMaximumProcessorCountEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3a8], rax
lea r8, str.KeQueryMaximumGroupCount
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3b0], rax
lea r8, str.KeQueryActiveProcessorCount
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3b8], rax
lea r8, str.KeQueryActiveProcessorCountEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3c0], rax
lea r8, str.KeQueryLogicalProcessorRelationship
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3c8], rax
lea r8, str.KeRegisterProcessorChangeCallback
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3d0], rax
lea r8, str.KeDeregisterProcessorChangeCallback
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3d8], rax
lea r8, str.KeSetImportanceDpc
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3e0], rax
lea r8, str.KeSetTargetProcessorDpc
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3e8], rax
lea r8, str.KeInitializeTimerEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3f0], rax
lea r8, str.KeShouldYieldProcessor
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e3f8], rax
lea r8, str.MmProtectMdlSystemAddress
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e400], rax
lea r8, str.MmAllocatePagesForMdl
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e408], rax
lea r8, str.MmAllocatePagesForMdlEx
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e410], rax
lea r8, str.MmFreePagesFromMdl
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e418], rax
lea r8, str.MmMapLockedPagesSpecifyCache
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e420], rax
lea r8, str.MmAllocateContiguousMemorySpecifyCache
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e428], rax
lea r8, str.MmSecureVirtualMemory
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e430], rax
lea r8, str.MmUnsecureVirtualMemory
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e438], rax
lea r8, str.RtlGetVersion
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e448], rax
lea r8, str.KeQueryInterruptTimePrecise
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e450], rax
lea r8, str.KeQuerySystemTimePrecise
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e458], rax
lea r8, str.HalRequestIpi
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e348], rax
mov qword [0x14002e350], rax
lea r8, str.MmHighestUserAddress
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e478], rax
lea r8, str.MmSystemRangeStart
xor edx, edx
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoGetSymbol
mov qword [0x14002e480], rax
mov rcx, qword [rsp + 0x98]
call sym.VBoxNetFlt.sys_RTR0DbgKrnlInfoRelease
lea rcx, [rsp + 0xa0]
call fcn.1400135e0
mov rax, qword [rsp + 0xa0]
movzx ebx, al
shl ebx, 0x10
movzx edx, byte [rsp + 0xa1]
or ebx, edx
mov dword [0x14002dfd8], ebx
mov byte [0x14002e46d], dl
mov byte [0x14002e46c], al
mov eax, dword [rsp + 0xa4]
mov dword [0x14002e470], eax
mov r8, cr8
mov qword [rsp + 0xa8], r8
mov byte [rsp + 0x90], r8b
mov eax, 2
mov cr8, rax
xor eax, eax
xor ecx, ecx
cpuid
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x3c], edx
mov byte [rsp + 0x44], 0
mov rax, qword gs:[0x18]
mov r15, qword [rax + 0x20]
mov qword [rsp + 0x30], r15
jmp 0x140013e09
test r15, r15
je 0x140013fa4
mov r14d, 0xffffffff
mov r12d, 0x7fffffff
xor r11d, r11d
movzx edi, byte [rsp + 0xa2]
movzx ecx, dil
and cl, 1
mov byte [rsp + 0x90], cl
lea rsi, [0x140027734]
mov r13d, dword [rsp + 0xa4]
lea rdx, [0x140027730]
movzx ebx, byte [rsi - 2]
movzx eax, bl
and al, 1
cmp al, cl
jne 0x140013f0e
test dil, 2
je 0x140013e6d
test bl, 2
je 0x140013f0e
mov ecx, dword [rsi]
mov eax, r13d
sub eax, ecx
jns 0x140013e7b
mov eax, ecx
sub eax, r13d
test eax, eax
jne 0x140013ea4
movzx edx, dil
shr dl, 2
movzx ecx, bl
shr cl, 2
cmp cl, dl
je 0x140013f20
cmp dl, 0x3f
je 0x140013f20
lea rdx, [0x140027730]
cmp eax, r12d
jl 0x140013f00
cmp r14d, 0xffffffff
je 0x140013f00
cmp eax, r12d
jne 0x140013f06
movzx ecx, dil
and cl, 0xfc
cmp cl, 0xfc
je 0x140013f06
mov r8d, ebx
shr r8d, 2
mov r10d, edi
shr r10d, 2
mov r9d, r8d
mov ecx, r14d
shl rcx, 5
movzx edx, byte [rcx + rdx + 2]
shr edx, 2
mov ebx, edx
sub ebx, r10d
mov ecx, r10d
sub ecx, r8d
sub r9d, r10d
cmovs r9d, ecx
sub r10d, edx
test ebx, ebx
cmovs ebx, r10d
cmp r9d, ebx
jge 0x140013f06
mov r12d, eax
mov r14d, r11d
movzx ecx, byte [rsp + 0x90]
inc r11d
add rsi, 0x20
cmp r11d, 0x14
jae 0x140013f23
jmp 0x140013e46
mov r14d, r11d
cmp r14d, 0x14
jae 0x140013f9b
mov ebx, r14d
lea rdi, [0x140027730]
movsxd rcx, ebx
shl rcx, 5
add rcx, rdi
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x38]
mov rdx, r15
call fcn.140013720
test al, al
jne 0x140013fb0
inc ebx
cmp ebx, 0x14
jb 0x140013f33
test al, al
jne 0x140013fb0
sub r14d, 1
js 0x140013fb0
nop word [rax + rax]
movsxd rcx, r14d
shl rcx, 5
add rcx, rdi
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x38]
mov rdx, r15
call fcn.140013720
test al, al
jne 0x140013fb0
sub r14d, 1
jns 0x140013f70
jmp 0x140013fb0
lea rcx, str.IPRT:_Failed_to_locate_data_set._n
jmp 0x140013fab
lea rcx, str.IPRT:_Failed_to_get_PCBR_pointer._n
call sub.ntoskrnl.exe_DbgPrint
movzx eax, byte [rsp + 0xa8]
mov cr8, rax
cmp dword [0x14002e460], 0
jne 0x140014012
cmp dword [0x14002e468], 0
jne 0x140014012
test byte [rsp + 0xa2], 1
lea rcx, str.checked
lea rax, str.free
cmovne rax, rcx
movzx r8d, byte [rsp + 0xa1]
movzx edx, byte [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0xa4]
lea rcx, str.IPRT:_Neither__KPRCB::QuantumEnd_nor__KPRCB::DpcQueueDepth_was_not_found__Kernel__u._u__u__s_n
call sub.ntoskrnl.exe_DbgPrint
lea rcx, [rsp + 0xa0]
call fcn.14001b760
mov ebx, eax
test eax, eax
jns 0x14001404a
call fcn.14001c750
mov edx, ebx
lea rcx, str.IPRT:_Fatal:_rtR0MpNtInit_failed:__d_n
call sub.ntoskrnl.exe_DbgPrint
mov eax, ebx
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret