Function at 0x15804
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, qword [0x00025348]
xor r15d, r15d
xor eax, eax
mov r12b, r8b
mov r13, rdx
mov r14, rcx
mov edi, r15d
mov esi, r15d
mov word [rsp + 0x40], r15w
mov qword [rsp + 0x42], rax
mov word [rsp + 0x4a], ax
cmp rbx, r15
je 0x15a8d
cmp byte [0x000266c2], r15b
je 0x1588c
lea rcx, [0x0001ee30]
xor edx, edx
call sub.ntoskrnl.exe_DbgPrint
cmp byte [0x000266c2], r15b
je 0x15885
mov rbx, qword [rbx + 8]
inc edi
cmp rbx, r15
jne 0x1586c
lea rcx, [0x0001ee70]
mov edx, edi
call sub.ntoskrnl.exe_DbgPrint
mov rbx, qword [0x00025348]
mov ebp, r15d
xor eax, eax
cmp r12b, r15b
je 0x1596b
movzx ecx, word [r13]
mov byte [rsp + 0xa1], al
mov word [rsp + 0x20], cx
mov al, byte [rsp + 0x21]
mov byte [rsp + 0xa1], cl
movzx ecx, word [r13 + 2]
mov byte [rsp + 0xa0], al
movzx eax, word [rsp + 0xa0]
mov word [rsp + 0x40], ax
xor eax, eax
mov word [rsp + 0x20], cx
mov byte [rsp + 0xa9], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0xa9], cl
mov ecx, dword [r14 + 0xc]
mov byte [rsp + 0xa8], al
movzx eax, word [rsp + 0xa8]
mov word [rsp + 0x42], ax
xor eax, eax
mov dword [rsp + 0x20], ecx
mov word [rsp + 0x31], ax
mov byte [rsp + 0x33], al
mov al, byte [rsp + 0x23]
mov byte [rsp + 0x30], al
mov al, byte [rsp + 0x22]
mov byte [rsp + 0x33], cl
mov ecx, dword [r14 + 0x10]
mov byte [rsp + 0x31], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x32], al
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x44], eax
xor eax, eax
mov word [rsp + 0x3d], ax
mov byte [rsp + 0x3f], al
mov al, byte [rsp + 0x23]
mov byte [rsp + 0x3c], al
mov al, byte [rsp + 0x22]
mov byte [rsp + 0x3f], cl
mov byte [rsp + 0x3d], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x3e], al
mov eax, dword [rsp + 0x3c]
jmp 0x15a1f
movzx ecx, word [r13 + 2]
mov byte [rsp + 0x2d], al
mov word [rsp + 0x20], cx
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x2d], cl
movzx ecx, word [r13]
mov byte [rsp + 0x2c], al
movzx eax, word [rsp + 0x2c]
mov word [rsp + 0x40], ax
xor eax, eax
mov word [rsp + 0x20], cx
mov byte [rsp + 0x29], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x29], cl
mov ecx, dword [r14 + 0x10]
mov byte [rsp + 0x28], al
movzx eax, word [rsp + 0x28]
mov word [rsp + 0x42], ax
xor eax, eax
mov dword [rsp + 0x20], ecx
mov word [rsp + 0x35], ax
mov byte [rsp + 0x37], al
mov al, byte [rsp + 0x23]
mov byte [rsp + 0x34], al
mov al, byte [rsp + 0x22]
mov byte [rsp + 0x37], cl
mov ecx, dword [r14 + 0xc]
mov byte [rsp + 0x35], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x36], al
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x44], eax
xor eax, eax
mov word [rsp + 0x39], ax
mov byte [rsp + 0x3b], al
mov al, byte [rsp + 0x23]
mov byte [rsp + 0x38], al
mov al, byte [rsp + 0x22]
mov byte [rsp + 0x3b], cl
mov byte [rsp + 0x39], al
mov al, byte [rsp + 0x21]
mov byte [rsp + 0x3a], al
mov eax, dword [rsp + 0x38]
cmp r12b, r15b
mov dword [rsp + 0x48], eax
mov rdi, rbx
sete r12b
inc esi
cmp rbx, r15
je 0x15a67
lea rdx, [rdi + 0x34]
lea rcx, [rsp + 0x40]
mov r8d, 0xc
inc ebp
call qword [sym.imp.ntoskrnl.exe_RtlCompareMemory]
cmp eax, 0xc
je 0x15a5b
mov rdi, qword [rdi + 8]
cmp rdi, r15
je 0x15a60
jmp 0x15a34
cmp rdi, r15
jne 0x15a70
mov rbx, qword [0x00025348]
cmp esi, 2
jl 0x1588f
cmp byte [0x000266c2], r15b
je 0x15a8a
lea rcx, [0x0001eeb0]
mov r8d, esi
mov edx, ebp
call sub.ntoskrnl.exe_DbgPrint
mov rax, rdi
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret