Function at 0x162ac
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x5c0
mov rax, qword [0x000a7100]
xor rax, rsp
mov qword [rsp + 0x5b0], rax
xor r15d, r15d
mov r14, r9
mov qword [rsp + 0xa0], r9
mov rbx, r15
mov rsi, rdx
mov rbp, rcx
mov byte [rsp + 0x81], r15b
mov byte [rsp + 0x80], r15b
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x78], rbx
cmp rdx, r15
je 0x16f73
cmp r9, r15
je 0x16f73
lea r13, [0x00092310]
xor eax, eax
or r12, 0xffffffffffffffff
mov rdi, r13
mov rcx, r12
mov rdx, r13
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe__wcsnicmp]
cmp eax, r15d
jne 0x1635b
xor eax, eax
mov rcx, r12
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r15, [rsi + rcx*2 - 2]
jmp 0x1635e
mov r15, rsi
mov r13d, 0xadc
mov r8d, 0x6c616e41
xor ecx, ecx
mov rdx, r13
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
xor edi, edi
mov r12, rax
cmp rax, rdi
je 0x16f93
mov r8, r13
xor edx, edx
mov rcx, rax
call fcn.00091d10
lea rcx, [0x00036f70]
mov r9, r12
mov r8, rbp
xor edx, edx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call fcn.0003ae58
lea rax, [r12 + 0x24]
mov rdi, r15
mov ecx, 0x104
mov rdx, rax
sub rdi, rax
xor r8d, r8d
lea rax, [rcx + 0x7ffffefa]
cmp rax, r8
je 0x163e7
movzx eax, word [rdx + rdi]
cmp ax, r8w
je 0x163e7
mov word [rdx], ax
add rdx, 2
sub rcx, 1
jne 0x163c4
cmp rcx, r8
jne 0x163f0
sub rdx, 2
mov r13, qword [0x000b5100]
mov word [rdx], r8w
mov rax, qword [r14 + 8]
mov qword [r12 + 0x14], rax
mov rax, qword [r14 + 0x18]
mov ebp, 0x12c
mov qword [r12 + 0x1c], rax
cmp dword [r13 + 0x86a0c], r8d
je 0x164b8
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
dec rcx
movsxd rax, ecx
cmp rax, r8
je 0x164b8
cmp word [rsi + rax*2], 0x5c
je 0x1644f
cmp rax, r8
je 0x164b8
dec ecx
sub rax, 1
jne 0x16439
jmp 0x164b8
movsxd rax, ecx
lea rdi, [rsi + rax*2 + 2]
cmp rdi, r8
je 0x164b8
lea rcx, [rsp + 0x350]
mov r8, rbp
xor edx, edx
call fcn.00091d10
lea r9, [r13 + 0xa18]
lea r8, [0x00092e90]
lea rcx, [rsp + 0x350]
mov rdx, rbp
mov qword [rsp + 0x20], rdi
call fcn.00014458
and qword [rsp + 0x28], rbx
lea r9, [rsp + 0x350]
lea rcx, [0x00039bec]
mov r8, rsi
xor edx, edx
mov qword [rsp + 0x20], 1
call fcn.0003ae58
inc dword [0x000b3814]
lea rcx, [0x000b3800]
call qword [sym.imp.ntoskrnl.exe_ExpInterlockedPopEntrySList]
mov r13, rax
test rax, rax
jne 0x164fe
mov edx, dword [0x000b382c]
mov r8d, dword [0x000b3828]
mov ecx, dword [0x000b3824]
inc dword [0x000b3818]
call qword [0x000b3830]
mov r13, rax
test rax, rax
je 0x16f7d
xor edx, edx
mov r8d, 0xa84
mov rcx, r13
call fcn.00091d10
and qword [rsp + 0x28], rbx
lea rax, [rsp + 0x70]
lea r9, [r13 + 0xe]
lea r8, [r12 + 0x24]
lea rcx, [0x00034080]
xor edx, edx
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x70], 0x104
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rcx
lea r9, [r13 + 0x4be]
lea r8, [r12 + 0x22c]
lea rcx, [0x00034080]
mov edi, 0x40
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x4fe]
lea r8, [r12 + 0x4ac]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x6aa]
lea r8, [r12 + 0x2ac]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x6ea]
lea r8, [r12 + 0x32c]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x76a]
lea r8, [r12 + 0x42c]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x7aa]
lea r8, [r12 + 0x52c]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], ebp
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rcx, [rsp + 0x70]
lea r9, [r13 + 0x8d6]
lea r8, [r12 + 0x784]
mov qword [rsp + 0x20], rcx
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], ebp
call fcn.0003ae58
and qword [rsp + 0x28], rbx
mov dword [rsp + 0x70], edi
lea r9, [r13 + 0x72a]
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x20], rcx
lea r8, [r12 + 0x3ac]
lea rcx, [0x00034080]
xor edx, edx
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x20], rdx
lea r9, [r13 + 0xa02]
lea r8, [r12 + 0x9dc]
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
and qword [rsp + 0x28], rbx
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x20], rdx
lea r9, [r13 + 0xa42]
lea r8, [r12 + 0xa5c]
lea rcx, [0x00034080]
xor edx, edx
mov dword [rsp + 0x70], edi
call fcn.0003ae58
mov rcx, qword [0x000b5100]
xor eax, eax
mov edi, 4
cmp byte [rcx + 0x862c1], al
je 0x1679c
mov r8d, eax
lock xadd dword [rcx + 0x78f70], r8d
mov rcx, qword [0x000b5100]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x38], rax
lea rdx, [rcx + 0x78f58]
mov word [rsp + 0x30], di
mov qword [rsp + 0x28], rax
add rcx, 0x78f60
xor r9d, r9d
mov qword [rsp + 0x20], r13
call fcn.0001d198
mov rcx, qword [0x000b5100]
test eax, eax
js 0x16795
lea eax, [rdi - 3]
lock xadd dword [rcx + 0x78f70], eax
mov rcx, qword [0x000b5100]
mov rbx, qword [rsp + 0x78]
xor eax, eax
mov r14b, byte [rsp + 0x81]
mov edi, 0x7de78
lea rbp, [r12 + 0x4ac]
mov edx, 4
cmp dword [rdi + rcx], eax
je 0x16931
movsxd rax, dword [rdi + rcx]
lea r9, [r12 + 0x22c]
mov r8, r15
lea rdx, [rcx + rax*8 + 0x7d878]
add rax, rax
lea rcx, [rcx + rax*8 + 0x7d078]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x68], rax
lea rax, [r12 + 0x32c]
mov qword [rsp + 0x60], rax
lea rax, [r12 + 0x42c]
mov qword [rsp + 0x58], rax
lea rax, [r12 + 0xa5c]
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x9dc]
mov qword [rsp + 0x48], rax
lea rax, [r12 + 0x3ac]
mov qword [rsp + 0x40], rax
lea rax, [r12 + 0x2ac]
mov qword [rsp + 0x38], rax
lea rax, [r12 + 0x784]
mov qword [rsp + 0x30], rax
lea rax, [r12 + 0x52c]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
call fcn.0002ee98
mov rbx, qword [rsp + 0x78]
mov rcx, qword [0x000b5100]
mov r14b, al
cmp al, 1
jne 0x16925
xor eax, eax
cmp rbx, rax
je 0x1692c
add rcx, 0x70c
mov r9d, 0xadc
mov r8, r12
mov edx, 0x646c774b
call fcn.0003a228
mov rcx, qword [0x000b5100]
xor eax, eax
cmp byte [rbx + 0x1e], al
jne 0x168af
cmp byte [rcx + 0x862c0], al
je 0x1692c
mov r8d, eax
lock xadd dword [rcx + 0x78f00], r8d
mov rcx, qword [0x000b5100]
mov rbx, qword [rsp + 0x78]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x38], rax
mov eax, 4
lea rdx, [rcx + 0x78ee8]
mov word [rsp + 0x30], ax
add rcx, 0x78ef0
xor r9d, r9d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
call fcn.0001d198
mov rcx, qword [0x000b5100]
mov edx, 4
test eax, eax
js 0x16921
lea eax, [rdx - 3]
lock xadd dword [rcx + 0x78f00], eax
mov rbx, qword [rsp + 0x78]
mov rcx, qword [0x000b5100]
xor eax, eax
jmp 0x16931
mov edx, 4
jmp 0x16921
mov edx, 4
add rdi, rdx
cmp rdi, 0x7e078
jl 0x167b6
cmp r14b, al
mov r14, qword [rsp + 0xa0]
mov ebp, 0x12c
je 0x1695c
cmp rbx, rax
jne 0x16b97
lea rax, [rsp + 0x78]
lea rdx, [rcx + 0x7d058]
lea rdi, [r12 + 0x22c]
mov qword [rsp + 0x68], rax
lea rax, [r12 + 0x32c]
add rcx, 0x7d048
mov qword [rsp + 0x60], rax
lea rax, [r12 + 0x42c]
mov r9, rdi
mov qword [rsp + 0x58], rax
lea rax, [r12 + 0xa5c]
mov r8, r15
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x9dc]
mov qword [rsp + 0x48], rax
lea rax, [r12 + 0x3ac]
mov qword [rsp + 0x40], rax
lea rax, [r12 + 0x2ac]
mov qword [rsp + 0x38], rax
lea rax, [r12 + 0x784]
mov qword [rsp + 0x30], rax
lea rax, [r12 + 0x52c]
mov qword [rsp + 0x28], rax
lea rax, [r12 + 0x4ac]
mov qword [rsp + 0x20], rax
call fcn.0002ee98
cmp al, 1
jne 0x16a33
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x16a33
mov rcx, qword [0x000b5100]
mov r9d, 0xadc
mov r8, r12
add rcx, 0x70c
mov edx, 0x646c774b
call fcn.0003a228
xor r15d, r15d
jmp 0x16b0c
mov rcx, qword [0x000b5100]
lea rax, [rsp + 0x78]
mov r9, rdi
mov qword [rsp + 0x68], rax
lea rax, [r12 + 0x32c]
lea rdx, [rcx + 0x7d070]
mov qword [rsp + 0x60], rax
lea rax, [r12 + 0x42c]
add rcx, 0x7d060
mov qword [rsp + 0x58], rax
lea rax, [r12 + 0xa5c]
mov r8, r15
mov qword [rsp + 0x50], rax
lea rax, [r12 + 0x9dc]
mov qword [rsp + 0x48], rax
lea rax, [r12 + 0x3ac]
mov qword [rsp + 0x40], rax
lea rax, [r12 + 0x2ac]
mov qword [rsp + 0x38], rax
lea rax, [r12 + 0x784]
mov qword [rsp + 0x30], rax
lea rax, [r12 + 0x52c]
mov qword [rsp + 0x28], rax
lea rax, [r12 + 0x4ac]
mov qword [rsp + 0x20], rax
call fcn.0002ee98
xor r15d, r15d
cmp al, 1
jne 0x16b87
mov rbx, qword [rsp + 0x78]
cmp rbx, r15
je 0x16e7d
mov rcx, qword [0x000b5100]
mov r9d, 0xadc
mov r8, r12
add rcx, 0x70c
mov edx, 0x646c774b
call fcn.0003a228
mov rdx, qword [0x000b5100]
cmp byte [rbx + 0x1e], r15b
jne 0x16b22
cmp byte [rdx + 0x862c0], r15b
je 0x16b8c
mov dword [rsp + 0x40], r15d
mov r8d, r15d
mov eax, 4
mov qword [rsp + 0x38], r15
lock xadd dword [rdx + 0x78f00], r8d
mov rcx, qword [0x000b5100]
mov rbx, qword [rsp + 0x78]
mov word [rsp + 0x30], ax
lea rdx, [rcx + 0x78ee8]
xor r9d, r9d
add rcx, 0x78ef0
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r13
call fcn.0001d198
cmp eax, r15d
jl 0x16b8c
mov rcx, qword [0x000b5100]
mov eax, 1
lock xadd dword [rcx + 0x78f00], eax
mov rbx, qword [rsp + 0x78]
cmp rbx, r15
je 0x16e7d
jmp 0x16b9a
xor r15d, r15d
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_MmIsAddressValid]
cmp al, r15b
je 0x16e6d
movzx ecx, word [rbx + 0x1c]
cmp ecx, r15d
je 0x16e62
sub ecx, 2
je 0x16e5e
sub ecx, 1
je 0x16d0c
cmp ecx, 1
jne 0x16e6d
mov dl, cl
mov rcx, qword [r14 + 8]
call fcn.000160cc
lea rcx, [0x000931b0]
mov rdx, rsi
call sub.ntoskrnl.exe_DbgPrint
lea rdx, [0x00092310]
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_wcsstr]
xor edx, edx
mov r8d, 0x258
lea rcx, [rsp + 0xf0]
cmp rax, r15
je 0x16c90
call fcn.00091d10
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0xf0]
sub rsi, rax
lea rax, [rbp + 0x7ffffed2]
cmp rax, r15
je 0x16c4f
movzx eax, word [rcx + rsi + 8]
cmp ax, r15w
je 0x16c4f
mov word [rcx], ax
add rcx, 2
sub rbp, 1
jne 0x16c2b
cmp rbp, r15
jne 0x16c58
sub rcx, 2
mov word [rcx], r15w
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0xd0]
movaps xmm5, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0xd0], xmm5
jmp 0x16e3c
call fcn.00091d10
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0xf0]
sub rsi, rax
lea rax, [rbp + 0x7ffffed2]
cmp rax, r15
je 0x16ccb
movzx eax, word [rcx + rsi]
cmp ax, r15w
je 0x16ccb
mov word [rcx], ax
add rcx, 2
sub rbp, 1
jne 0x16ca8
cmp rbp, r15
jne 0x16cd4
sub rcx, 2
mov word [rcx], r15w
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0xb0]
movaps xmm5, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0xb0], xmm5
jmp 0x16e3c
mov rcx, qword [r14 + 8]
xor edx, edx
call fcn.000160cc
lea rcx, [0x00093150]
mov rdx, rsi
call sub.ntoskrnl.exe_DbgPrint
lea rdx, [0x00092310]
mov rcx, rsi
call qword [sym.imp.ntoskrnl.exe_wcsstr]
xor edx, edx
mov r8d, 0x258
lea rcx, [rsp + 0xf0]
cmp rax, r15
je 0x16dc5
call fcn.00091d10
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0xf0]
sub rsi, rax
lea rax, [rbp + 0x7ffffed2]
cmp rax, r15
je 0x16d87
movzx eax, word [rsi + rcx + 8]
cmp ax, r15w
je 0x16d87
mov word [rcx], ax
add rcx, 2
sub rbp, 1
jne 0x16d63
cmp rbp, r15
jne 0x16d90
sub rcx, 2
mov word [rcx], r15w
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0xe0]
movaps xmm5, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0xe0], xmm5
jmp 0x16e3c
call fcn.00091d10
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0xf0]
sub rsi, rax
lea rax, [rbp + 0x7ffffed2]
cmp rax, r15
je 0x16e00
movzx eax, word [rsi + rcx]
cmp ax, r15w
je 0x16e00
mov word [rcx], ax
add rcx, 2
sub rbp, 1
jne 0x16ddd
cmp rbp, r15
jne 0x16e09
sub rcx, 2
mov word [rcx], r15w
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea rcx, [rsp + 0xc0]
movaps xmm5, xmmword [rsp + 0x90]
movdqa xmmword [rsp + 0xc0], xmm5
call fcn.000914bc
mov edx, 0xc0000000
mov ecx, eax
and ecx, edx
cmp ecx, edx
jne 0x16e6d
lea rcx, [0x00093170]
mov edx, eax
call sub.ntoskrnl.exe_DbgPrint
jmp 0x16e6d
mov dl, 1
jmp 0x16e64
xor edx, edx
mov rcx, qword [r14 + 8]
call fcn.000160cc
cmp rbx, r15
je 0x16e7d
cmp word [rbx + 0x1c], r15w
je 0x16f27
mov edi, 0xadc
mov r8d, 0x6c616e41
xor ecx, ecx
mov rdx, rdi
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov rbx, rax
cmp rax, r15
je 0x16f22
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.00091d10
mov rcx, rbx
mov rdx, r12
mov r8, rdi
call fcn.00091720
mov rax, qword [0x000b5100]
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov ecx, 1
lock xadd dword [rax + 0x7d044], ecx
inc ecx
mov dword [r12 + 0x10], ecx
mov rcx, qword [0x000b5100]
add rcx, 0x86220
call qword [sym.imp.ntoskrnl.exe_KeAcquireSpinLockRaiseToDpc]
mov dil, al
mov rax, qword [0x000b5100]
lea rdx, [rax + 0x86210]
mov rcx, qword [rdx]
mov qword [rbx + 8], rdx
mov qword [rbx], rcx
mov qword [rcx + 8], rbx
mov qword [rdx], rbx
lea rcx, [rax + 0x86220]
mov dl, dil
call qword [sym.imp.ntoskrnl.exe_KeReleaseSpinLock]
mov dil, 1
jmp 0x16f2f
mov dil, byte [rsp + 0x80]
inc dword [0x000b381c]
lea rcx, [0x000b3800]
call qword [sym.imp.ntoskrnl.exe_ExQueryDepthSList]
cmp ax, word [0x000b3810]
jb 0x16f5c
inc dword [0x000b3820]
mov rcx, r13
call qword [0x000b3838]
jmp 0x16f6c
lea rcx, [0x000b3800]
mov rdx, r13
call qword [sym.imp.ntoskrnl.exe_ExpInterlockedPushEntrySList]
cmp dil, r15b
jne 0x16f93
jmp 0x16f80
mov r12, qword [rsp + 0xa0]
jmp 0x16f80
xor r15d, r15d
cmp r12, r15
je 0x16f93
mov edx, 0x6c616e41
mov rcx, r12
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rcx, qword [rsp + 0x5b0]
xor rcx, rsp
call fcn.000916b0
mov rbx, qword [rsp + 0x610]
add rsp, 0x5c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret