Function at 0x24960
Capabilities:
Print debug messages

Disassembly:
mov edx, dword [rsp]
mov eax, dword [rcx + rax*4]
mov ecx, dword [rdx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x14]
shr ecx, 8
jmp 0xffffffffffe2cbff
add byte [rax], al
add byte [rbx + 0x158d48c9], cl
fisttp qword [rbx]
invalid
jmp 0xffffffffffe2cbff
xor eax, dword [rdx + rcx*4]
mov ecx, dword [rsp + 8]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
leave
leave
lea rdx, [0x00019ae0]
xor eax, dword [rdx + rcx*4]
mov ecx, dword [rsp + 0xc]
shr ecx, 0x18
sbb byte [rcx + 0xffe1], al
add byte [rbx + 0x158d48c9], cl
stosd dword [rdi], eax
push rbx
add byte [rax], al
sbb byte [rcx + 0xffe1], al
add byte [rbx + 0x158d48c9], cl
stosd dword [rdi], eax
push rbx
add byte [rax], al
xor eax, dword [rdx + rcx*4]
add al, 0x8a
mov dword [rsp + 0x24], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
and al, 0x8b
and al, 0x14
and al, 0x8b
and al, 0x14
and eax, 0xff
mov eax, eax
lea rcx, [0x000192e0]
add byte [rax], al
add byte [rax], al
mov rdx, qword [rsp]
mov eax, dword [rcx + rax*4]
mov ecx, dword [rdx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 8]
and al, 8
and al, 8
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000196e0]
add byte [r8], al
add byte [r8], al
xor eax, dword [rdx + rcx*4]
mov ecx, dword [rsp + 0xc]
shr ecx, 0x10
and ecx, 0xff
add byte [rax], al
add byte [rax], al
mov ecx, ecx
lea rdx, [0x00019ae0]
xor eax, dword [rdx + rcx*4]
mov ecx, dword [rsp + 0x10]
adc cl, al
jmp 0xffffffffffe2ccbb
add byte [rax], al
add byte [rbx + 0x158d48c9], cl
xor dword [rbx], edx
add byte [rax], al
adc cl, al
jmp 0xffffffffffe2ccbb
add byte [rax], al
xor eax, dword [rdx + rcx*4]
mov dword [rsp + 0x18], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov eax, dword [rsp + 0x1c]
and eax, 0xff
mov eax, eax
ror byte [rax - 0x73], 0xd
or al, 0x46
add byte [rax], al
ror byte [rax - 0x73], 0xd
or al, 0x46
add byte [rax], al
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp]
or al, 0x24
or al, 0x24
mov ecx, dword [rcx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x20]
shr ecx, 8
or byte [rcx + 0xffe1], al
add byte [rbx + 0x158d48c9], cl
invalid
add byte [r8], r8b
add byte [rax], al
or byte [rcx + 0xffe1], al
add byte [rbx + 0x158d48c9], cl
call 0xf014c3e
add byte [rax], al
movzx ecx, byte [rdx + rcx]
shl ecx, 8
add byte [rax], al
movzx ecx, byte [rdx + rcx]
shl ecx, 8
xor eax, ecx
mov ecx, dword [rsp + 0x24]
and al, 0xc1
jmp 0xffffffffffe2cd1b
add byte [rax], al
add byte [rbx + 0x158d48c9], cl
adc eax, 0x45c9
and al, 0xc1
jmp 0xffffffffffe2cd1b
adc byte [rcx + 0xffe1], al
add byte [rbx + 0x158d48c9], cl
adc eax, 0x45c9
adc eax, 0x45c9
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
xor eax, ecx
mov ecx, dword [rsp + 0x18]
shr ecx, 0x18
and ecx, 0xff
mov ecx, ecx
leave
leave
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
xor eax, ecx
mov dword [rsp + 8], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov eax, dword [rsp + 0x20]
and eax, 0xff
mov eax, eax
lea rcx, [0x000191e0]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp]
mov ecx, dword [rcx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
xor eax, ecx
mov ecx, dword [rsp + 0x18]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
xor eax, ecx
mov ecx, dword [rsp + 0x1c]
shr ecx, 0x18
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
xor eax, ecx
mov dword [rsp + 0xc], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov eax, dword [rsp + 0x24]
and eax, 0xff
mov eax, eax
lea rcx, [0x000191e0]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp]
mov ecx, dword [rcx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x18]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
xor eax, ecx
mov ecx, dword [rsp + 0x1c]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
xor eax, ecx
mov ecx, dword [rsp + 0x20]
shr ecx, 0x18
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
xor eax, ecx
mov dword [rsp + 0x10], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov eax, dword [rsp + 0x18]
and eax, 0xff
mov eax, eax
lea rcx, [0x000191e0]
movzx eax, byte [rcx + rax]
mov rcx, qword [rsp]
mov ecx, dword [rcx]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1c]
shr ecx, 8
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 8
xor eax, ecx
mov ecx, dword [rsp + 0x20]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x10
xor eax, ecx
mov ecx, dword [rsp + 0x24]
shr ecx, 0x18
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
shl ecx, 0x18
xor eax, ecx
mov dword [rsp + 0x14], eax
mov rax, qword [rsp]
add rax, 4
mov qword [rsp], rax
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x58]
movzx edx, byte [rsp + 8]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 8]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 8]
shr eax, 0x10
mov ecx, 1
imul rcx, rcx, 2
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 8]
shr eax, 0x18
mov ecx, 1
imul rcx, rcx, 3
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rsp + 0x58]
movzx edx, byte [rsp + 0xc]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0xc]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 5
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0xc]
shr eax, 0x10
mov ecx, 1
imul rcx, rcx, 6
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0xc]
shr eax, 0x18
mov ecx, 1
imul rcx, rcx, 7
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, 1
imul rax, rax, 8
mov rcx, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x10]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x10]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 9
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x10]
shr eax, 0x10
mov ecx, 1
imul rcx, rcx, 0xa
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x10]
shr eax, 0x18
mov ecx, 1
imul rcx, rcx, 0xb
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, 1
imul rax, rax, 0xc
mov rcx, qword [rsp + 0x58]
movzx edx, byte [rsp + 0x14]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x14]
shr eax, 8
mov ecx, 1
imul rcx, rcx, 0xd
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x14]
shr eax, 0x10
mov ecx, 1
imul rcx, rcx, 0xe
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x14]
shr eax, 0x18
mov ecx, 1
imul rcx, rcx, 0xf
mov rdx, qword [rsp + 0x58]
mov byte [rdx + rcx], al
xor eax, eax
add rsp, 0x38
ret
sbb eax, dword [rax]
add byte [rax], al
lea ecx, [0x0001a2e0]
shl dword [0x0001525b], 0x89
and al, 8
or bh, al
and al, 0x1c
add byte [rax], al
add byte [rax], al
and al, 0x28
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x170]
mov eax, dword [rax]
dec eax
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x20]
sub rax, 0x20
mov qword [rsp + 0x20], rax
jmp 0x156a2
mov eax, dword [rsp + 0x34]
dec eax
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x20]
sub rax, 0x20
mov qword [rsp + 0x20], rax
cmp dword [rsp + 0x34], 0
jle 0x15795
mov dword [rsp + 0x38], 0
jmp 0x156cf
mov eax, dword [rsp + 0x38]
inc eax
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
cmp dword [rsp + 0x38], 4
jge 0x15790
mov rax, qword [rsp + 0x20]
mov eax, dword [rax]
and eax, 0xff
mov eax, eax
lea rcx, [0x000191e0]
movzx eax, byte [rcx + rax]
lea rcx, [0x0001a3e0]
mov rdx, qword [rsp + 0x20]
mov edx, dword [rdx]
shr edx, 8
invalid
or byte [rcx + 0xffe2], al
add byte [rbx + 0x58d4cd2], cl
int 0x3a
add byte [rax], al
movzx edx, byte [r8 + rdx]
lea r8, [0x0001a7e0]
mov edx, dword [r8 + rdx*4]
mov eax, dword [rcx + rax*4]
xor eax, edx
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
shr ecx, 0x10
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
lea rdx, [0x0001abe0]
xor eax, dword [rdx + rcx*4]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
shr ecx, 0x18
and ecx, 0xff
mov ecx, ecx
lea rdx, [0x000191e0]
movzx ecx, byte [rdx + rcx]
lea rdx, [0x0001afe0]
xor eax, dword [rdx + rcx*4]
mov rcx, qword [rsp + 0x28]
mov dword [rcx], eax
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
jmp 0x156b7
invalid
jmp 0x1568a
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov ecx, dword [rcx]
mov dword [rax], ecx
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x20]
add rax, 4
mov qword [rsp + 0x20], rax
mov r8d, 0x120
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.000139e0
xor eax, eax
add rsp, 0x168
ret
push rax
mov eax, dword [rsp + 0x30]
add byte [rbp + 0xe], dh
int3
add dword [rax], 0
add byte [rax], 0
add byte [rax - 0x75], cl
call fcn.00017c00
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
add rsp, 0x78
ret
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1258
call sub.ntoskrnl.exe___chkstk
sub rsp, rax
mov dword [rsp + 0x30c], 0
mov qword [rsp + 0x148], 0
lea rax, [rsp + 0x9c0]
mov rdi, rax
xor eax, eax
mov ecx, 0xc0
rep stosb byte [rdi], al
mov dword [rsp + 0x458], 0
call fcn.00016210
movzx eax, al
cmp eax, 1
jle 0x24a03
call fcn.00016210
movzx eax, al
mov edx, eax
lea rcx, [0x00011090]
call sub.ntoskrnl.exe_DbgPrint
xor r9d, r9d
mov r8d, 0x1a8
lea rdx, [0x00011ef0]
lea rcx, [0x000110e4]
call qword [sym.imp.ntoskrnl.exe_RtlAssert]
mov r8d, 0x4d525356
mov edx, 0x32
mov ecx, 1
call qword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov qword [rsp + 0x148], rax
cmp qword [rsp + 0x148], 0
jne 0x24a31
jmp 0x281ba
mov r8d, 0x32
xor edx, edx
mov rcx, qword [rsp + 0x148]
call fcn.000139e0
mov rax, qword [rsp + 0x148]
mov byte [rax], 1
mov dword [rsp + 0x150], 0
mov byte [rsp + 0x141], 0
mov rax, qword [rsp + 0x12b0]
mov eax, dword [rax]
mov dword [rsp + 0x30c], eax
movabs rax, 0xfffff78000000320
mov rax, qword [rax]
mov qword [rsp + 0x440], rax
mov rax, qword [rsp + 0x12a8]
movzx eax, byte [rax]
mov dword [rsp + 0x1a4], eax
mov eax, dword [rsp + 0x1a4]
sub eax, 0x1d
mov dword [rsp + 0x1a4], eax
cmp dword [rsp + 0x1a4], 0x92
ja case.default.0x24adf
movsxd rax, dword [rsp + 0x1a4]
lea rcx, [0x00010000]
movzx eax, byte [rcx + rax + 0x18228]
mov eax, dword [rcx + rax*4 + 0x181d0]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x12a8]
movzx eax, byte [rax]
mov edx, eax
lea rcx, [0x000120f8]
call sub.ntoskrnl.exe_DbgPrint
mov rax, qword [rsp + 0x12a8]
movzx eax, word [rax + 5]
mov rcx, qword [rsp + 0x12a8]
movzx ecx, word [rcx + 3]
mov rdx, qword [rsp + 0x12a8]
movzx edx, word [rdx + 1]
mov r9d, eax
mov r8d, ecx
lea rcx, [0x00012118]
call sub.ntoskrnl.exe_DbgPrint
mov rax, qword [rsp + 0x12a8]
movzx eax, byte [rax]
mov dword [rsp + 0x1a8], eax
mov eax, dword [rsp + 0x1a8]
sub eax, 0x1d
mov dword [rsp + 0x1a8], eax
cmp dword [rsp + 0x1a8], 0x92
ja case.default.0x24cd2
movsxd rax, dword [rsp + 0x1a8]
lea rcx, [0x00010000]
movzx eax, byte [rcx + rax + 0x18304]
mov eax, dword [rcx + rax*4 + 0x182bc]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x12a8]
movzx eax, byte [rax]
mov edx, eax
lea rcx, [0x000124e0]
call sub.ntoskrnl.exe_DbgPrint
mov rax, qword [rsp + 0x12a0]
movzx eax, byte [rax + 2]
test eax, eax
je 0x27fd2
mov rax, qword [rsp + 0x148]
mov byte [rax], 0
mov rax, qword [rsp + 0x12b0]
mov dword [rax], 0
movzx eax, byte [rsp + 0x440]
mov rcx, qword [rsp + 0x12a0]
movzx ecx, byte [rcx + 3]
xor ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x12a0]
mov byte [rcx + 3], al
mov rax, qword [rsp + 0x148]
movzx eax, byte [rax]
test eax, eax
jl 0x28081
mov rax, qword [rsp + 0x148]
movzx eax, byte [rax]
cmp eax, 0x1f
jg 0x28081
mov rax, qword [rsp + 0x12a0]
movzx eax, byte [rax + 3]
inc al
mov byte [rsp + 0x154], al
mov rax, qword [rsp + 0x12a0]
movzx ecx, byte [rsp + 0x154]
mov byte [rax + 3], cl
mov rax, qword [rsp + 0x148]
movzx ecx, byte [rsp + 0x154]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x12a8]
movzx ecx, byte [rcx]
and ecx, 0x7f
mov r8, rax
mov dl, 2
call fcn.000181b0
test eax, eax
je 0x28022
mov rax, qword [rsp + 0x148]
movzx eax, byte [rax]
mov byte [rsp + 0x188], al
mov rax, qword [rsp + 0x148]
movzx eax, byte [rax + 1]
mov byte [rsp + 0x189], al
mov rax, qword [rsp + 0x148]
mov r8, qword [rsp + 0x12a0]
mov edx, 2
mov rcx, rax
call fcn.00024920
movzx eax, byte [rsp + 0x141]
test eax, eax
je 0x280f2
mov rax, qword [rsp + 0x148]
add rax, 2
mov r8, qword [rsp + 0x12a0]
mov edx, dword [rsp + 0x150]
mov rcx, rax
call fcn.00024920
movzx eax, byte [rsp + 0x188]
test eax, eax
jne 0x28128
mov rax, qword [rsp + 0x12a0]
movzx eax, word [rax + 0xe]
and eax, 0xff
movzx ecx, byte [rsp + 0x189]
shl ecx, 8
or eax, ecx
mov rcx, qword [rsp + 0x12a0]
mov word [rcx + 0xe], ax
mov eax, dword [rsp + 0x150]
add rax, 2
mov rcx, qword [rsp + 0x12b0]
mov ecx, dword [rcx]
cmp rax, rcx
jae 0x28157
mov eax, dword [rsp + 0x150]
add rax, 2
mov qword [rsp + 0x400], rax
jmp 0x28169
mov rax, qword [rsp + 0x12b0]
mov eax, dword [rax]
mov qword [rsp + 0x400], rax
mov rax, qword [rsp + 0x12b0]
mov ecx, dword [rsp + 0x400]
mov dword [rax], ecx
mov rax, qword [rsp + 0x12b0]
mov eax, dword [rax]
mov r8d, eax
mov rdx, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x12b8]
call fcn.00013690
cmp qword [rsp + 0x148], 0
je 0x281ba
mov edx, 0x4d525356
mov rcx, qword [rsp + 0x148]
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
add rsp, 0x1258
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret