Function at 0x23d90
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 dword [rsp + 0x20], 0
lea rdi, [rsp + 0x30]
lea rsi, [0x000263d0]
mov ecx, 0xb0
rep movsb byte [rdi], byte [rsi]
call fcn.00014b10
test eax, eax
jge 0x23de8
call fcn.00015440
lea rcx, [0x000262c0]
call sub.ntoskrnl.exe_DbgPrint
xor al, al
jmp 0x24260
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 0x23e27
call fcn.00015470
lea rcx, [0x000262f0]
call sub.ntoskrnl.exe_DbgPrint
xor al, al
jmp 0x24260
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 0x23e5b
jmp 0x24259
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 0x23ee1
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 0x24259
mov ecx, 1
call fcn.00012fa0
mov dword [0x0002c390], 0x6ddd00
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 0x24259
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 0x241da
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 0x241b2
cmp dword [rsp + 0xe8], 0
jne 0x240c3
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 0x240f9
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 0x24120
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 0x2413c
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 0x241ad
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 0x2407a
mov rcx, qword [rsp + 0x108]
call fcn.00013250
cmp qword [rsp + 0x108], 0
je 0x241da
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 0x24239
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 0x24254
xor edx, edx
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
jmp 0x23f32
call fcn.00015470
mov al, 1
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.000246f0
add rsp, 0x128
pop rdi
pop rsi
ret