Function at 0x23890
Capabilities:
Print debug messages

Disassembly:
push rsi
push rdi
sub rsp, 0x128
mov rax, qword [0x0002b100]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov byte [rsp + 0x24], 0
mov dword [rsp + 0x20], 0
lea rdi, [rsp + 0x30]
lea rsi, [0x00026320]
mov ecx, 0xaf
rep movsb byte [rdi], byte [rsi]
call fcn.000141e0
test eax, eax
jge 0x238ed
call fcn.00015440
lea rcx, [0x000262c0]
call sub.ntoskrnl.exe_DbgPrint
xor al, al
jmp 0x23d6c
xor eax, eax
mov rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x30]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov edx, ecx
lea rcx, [rsp + 0x30]
call fcn.000154a0
test eax, eax
jge 0x2392c
call fcn.00015470
lea rcx, [0x000262f0]
call sub.ntoskrnl.exe_DbgPrint
xor al, al
jmp 0x23d6c
mov ecx, 0x7d0
call fcn.00013450
mov rdi, qword [0x0002d388]
xor eax, eax
mov ecx, 0x8000
rep stosb byte [rdi], al
mov edx, 0x8000
mov rcx, qword [0x0002d388]
call fcn.000158e0
test eax, eax
jge 0x23960
jmp 0x23d63
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0xfc], 0
mov dword [rsp + 0xf8], 0
mov dword [rsp + 0xe8], 0
cmp qword [0x0002d388], 0
je 0x239e6
mov rdx, qword [0x0002d388]
lea rcx, [0x00026010]
call fcn.000134f0
add eax, 4
mov dword [rsp + 0xfc], eax
movsxd rax, dword [rsp + 0xfc]
mov rcx, qword [0x0002d388]
add rcx, rax
lea rdx, [0x00026020]
call fcn.00011980
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0xe0], 0
je 0x23d63
mov byte [rsp + 0x24], 1
mov ecx, 1
call fcn.00012fa0
mov dword [0x0002c390], 0x2932e00
movsxd rdx, dword [rsp + 0xfc]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xe0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
lea rax, [rdx + rcx + 2]
mov dword [rsp + 0xfc], eax
cmp qword [rsp + 0xe0], 0
je 0x23d63
mov qword [rsp + 0x100], 0
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xe0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdx, rcx
add rdx, 1
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePool]
mov qword [rsp + 0x100], rax
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xe0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
add rcx, 1
mov rdi, qword [rsp + 0x100]
xor eax, eax
rep stosb byte [rdi], al
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xe0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0xe0]
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0xf8], 0
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0xe8], 0
movsxd rax, dword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
add rcx, rax
lea rdx, [0x00026270]
call fcn.00011980
mov qword [rsp + 0xf0], rax
cmp qword [rsp + 0xf0], 0
je 0x23ce4
mov edx, 0x9e
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePool]
mov qword [rsp + 0x108], rax
mov rdi, qword [rsp + 0x108]
xor eax, eax
mov ecx, 0x9e
rep stosb byte [rdi], al
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xf0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rax, rcx
add rax, 1
mov dword [rsp + 0xf8], eax
cmp qword [rsp + 0xf0], 0
je 0x23cbc
cmp dword [rsp + 0xe8], 0
jne 0x23bcd
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xf0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, qword [rsp + 0x108]
add rdi, 0x64
mov rsi, qword [rsp + 0xf0]
rep movsb byte [rdi], byte [rsi]
cmp dword [rsp + 0xe8], 1
jne 0x23c03
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xf0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, qword [rsp + 0x108]
mov rsi, qword [rsp + 0xf0]
rep movsb byte [rdi], byte [rsi]
cmp dword [rsp + 0xe8], 2
jne 0x23c2a
mov rcx, qword [rsp + 0xf0]
call fcn.000234e0
mov edx, eax
mov rax, qword [rsp + 0x108]
mov dword [rax + 0x96], edx
cmp dword [rsp + 0xe8], 3
jne 0x23c46
mov rax, qword [rsp + 0x108]
mov dword [rax + 0x9a], 1
mov eax, dword [rsp + 0xe8]
add eax, 1
mov dword [rsp + 0xe8], eax
movsxd rax, dword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
add rcx, rax
lea rdx, [0x00026270]
call fcn.00011980
mov qword [rsp + 0xf0], rax
cmp qword [rsp + 0xf0], 0
je 0x23cb7
movsxd rdx, dword [rsp + 0xf8]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xf0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
lea rax, [rdx + rcx + 1]
mov dword [rsp + 0xf8], eax
jmp 0x23b84
mov rcx, qword [rsp + 0x108]
call fcn.00013250
cmp qword [rsp + 0x108], 0
je 0x23ce4
xor edx, edx
mov rcx, qword [rsp + 0x108]
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
movsxd rax, dword [rsp + 0xfc]
mov rcx, qword [0x0002d388]
add rcx, rax
lea rdx, [0x00026020]
call fcn.00011980
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0xe0], 0
je 0x23d43
movsxd rdx, dword [rsp + 0xfc]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0xe0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
lea rax, [rdx + rcx + 2]
mov dword [rsp + 0xfc], eax
cmp qword [rsp + 0x100], 0
je 0x23d5e
xor edx, edx
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
jmp 0x23a3c
call fcn.00015470
mov al, byte [rsp + 0x24]
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.000246f0
add rsp, 0x128
pop rdi
pop rsi
ret