Function at 0x180012f50
Capabilities:
Access peb ldr_data

Disassembly:
test r8, r8
je 0x1800132ae
mov rax, rsp
mov qword [rax + 0x18], r8
push rbx
push rsi
sub rsp, 0x98
mov qword [rax + 8], rbp
mov r9, r8
mov qword [rax - 0x18], rdi
mov rbx, rdx
movzx edi, word [rdx + 0xc]
mov rsi, rcx
xor di, word [rcx + 0x8c]
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
je 0x1800132f1
movzx eax, byte [rbx + 0xe]
test al, al
je 0x1800132c4
movzx eax, al
mov rbp, rbx
shl rax, 0x10
and rbp, 0xffffffffffff0000
sub rbp, rax
add rbp, 0x10000
movzx eax, byte [rbx + 0xa]
lea r14, [rsi + 0x150]
mov byte [rsp + 0xc8], al
mov edx, 0xff00
movabs r15, 0xfeeefeeefeeefeee
cmp r9, rdx
ja 0x18001330b
movzx r11d, r9w
xor ecx, ecx
movzx eax, al
cmp r9, rdx
mov dword [rsp + 0x30], r11d
cmovbe ecx, eax
mov byte [rbx + 0xa], cl
movzx eax, word [rsi + 0x8c]
xor ax, di
mov word [rbx + 0xc], ax
mov rdx, qword [rbp + 0x28]
cmp rdx, rbp
je 0x1800132bc
mov rax, rbx
sub rax, rbp
shr rax, 0x10
lea rdi, [rax + 1]
cmp rdi, 0xfe
jae 0x1800a83cc
and byte [rbx + 0xa], 0xf0
mov byte [rbx + 0xe], dil
mov word [rbx + 8], r11w
mov byte [rbx + 0xb], 0
movzx r10d, r11w
mov byte [rbx + 0xf], 0
test byte [rsi + 0x70], 0x40
mov qword [rsp + 0x38], r10
jne 0x1800a8400
mov rdi, qword [rsi + 0x138]
test rdi, rdi
je 0x180013303
mov eax, dword [rdi + 8]
cmp r10, rax
jb 0x18001308c
mov rax, qword [rdi]
test rax, rax
je 0x180013091
mov rdi, rax
mov eax, dword [rax + 8]
cmp r10, rax
jae 0x180013079
mov rcx, r10
jmp 0x180013096
mov ecx, dword [rdi + 8]
dec ecx
mov r9d, ecx
mov qword [rsp + 0x20], r10
mov rcx, rsi
mov r8b, 1
mov rdx, rdi
call fcn.180013330
mov r10, qword [rsp + 0x38]
mov r8, rax
test rax, rax
je 0x180013322
mov r9, qword [rsp + 0xc0]
mov r11d, dword [rsp + 0x30]
cmp r14, r8
je 0x180013104
mov ecx, dword [rsi + 0x7c]
test ecx, ecx
je 0x1800a8452
mov eax, dword [r8 - 8]
mov ecx, dword [rsi + 0x7c]
mov dword [rsp + 0x50], eax
test eax, ecx
je 0x1800130f3
xor eax, dword [rsi + 0x88]
mov dword [rsp + 0x50], eax
movzx eax, word [rsp + 0x50]
movzx eax, ax
cmp r10, rax
ja 0x1800a845c
mov rax, qword [r8 + 8]
lea r13, [rbx + 0x10]
mov rcx, qword [rax]
cmp rcx, r8
jne 0x1800a846d
mov qword [r13], r8
mov qword [r13 + 8], rax
mov qword [rax], r13
mov qword [r8 + 8], r13
movzx eax, word [rbx + 8]
add qword [rsi + 0xc0], rax
mov rdi, qword [rsi + 0x138]
test rdi, rdi
je 0x180013214
movzx r12d, word [rbx + 8]
mov eax, dword [rdi + 8]
cmp r12, rax
jb 0x180013162
mov rax, qword [rdi]
test rax, rax
je 0x180013167
mov rdi, rax
mov eax, dword [rax + 8]
cmp r12, rax
jae 0x18001314f
mov rcx, r12
jmp 0x18001316c
mov ecx, dword [rdi + 8]
dec ecx
mov r15d, ecx
sub r15d, dword [rdi + 0x18]
cmp dword [rdi + 0xc], 0
jne 0x1800a849f
mov eax, r15d
inc dword [rdi + 0x10]
lea rdx, [rax*8]
mov rax, qword [rdi + 0x30]
mov qword [rsp + 0x40], rdx
mov r14, qword [rdx + rax]
mov eax, dword [rdi + 8]
dec eax
cmp ecx, eax
jne 0x1800131a4
inc dword [rdi + 0x14]
test r14, r14
je 0x1800132af
mov eax, dword [r14 - 8]
lea r8, [r14 - 0x10]
cmp dword [rsi + 0x7c], 0
mov dword [rsp + 0x60], eax
je 0x1800131e9
mov edx, dword [rsi + 0x88]
xor edx, eax
mov ecx, edx
mov dword [rsp + 0x60], edx
shr ecx, 0x10
mov eax, edx
shr eax, 8
xor cl, al
xor cl, dl
shr edx, 0x18
cmp dl, cl
jne 0x1800a84a8
mov rdx, qword [rsp + 0x40]
movzx eax, word [rsp + 0x60]
sub r12d, eax
test r12d, r12d
jle 0x1800132af
test r14, r14
lea r14, [rsi + 0x150]
je 0x1800132cc
movabs r15, 0xfeeefeeefeeefeee
cmp dword [rsi + 0x7c], 0
je 0x180013230
movzx eax, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rsi + 0x88]
xor dword [rbx + 8], eax
sub r9, r10
movzx edi, r11w
shl r10, 4
add rbx, r10
mov qword [rsp + 0xc0], r9
cmp rbx, qword [rbp + 0x48]
jae 0x18001327b
movzx eax, byte [rsp + 0xc8]
mov edx, 0xff00
test r9, r9
jne 0x180012fe3
movzx eax, word [rsi + 0x8c]
xor ax, r11w
mov word [rbx + 0xc], ax
test r11w, r11w
je 0x1800a84e0
mov r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x70]
add rsp, 0x98
pop rsi
pop rbx
ret
mov rax, qword [rdi + 0x30]
mov qword [rdx + rax], r13
jmp 0x1800131fa
xor dil, dil
jmp 0x180013039
mov rbp, rsi
jmp 0x180012fc2
mov rax, qword [rdi + 0x28]
mov edx, r15d
and r15d, 0x1f
shr rdx, 5
movzx ecx, r15b
lea rdx, [rax + rdx*4]
mov eax, 1
shl eax, cl
or dword [rdx], eax
jmp 0x18001320a
cmp dword [0x18015d450], 1
jl 0x180012f9b
jmp 0x1800a834a
mov r8, qword [r14]
jmp 0x1800130ca
cmp r9, 0xff01
mov r11d, 0xfef0
cmovne r11w, dx
jmp 0x180012ff0
mov rdi, qword [rdi]
mov ecx, dword [rdi + 0x18]
jmp 0x180013096
test byte [rdx + 0xa], 8
jne 0x180012f9b
lea rax, [rdx + 0xfff]
and rax, 0xfffffffffffff000
cmp rax, rbx
je 0x180012f9b
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], 0
je 0x1800a839d
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rdx, qword [rcx + 0x10]
lea rcx, str.HEAP__wZ_:
add rdx, 0x58
call sym.ntdll.dll_DbgPrint
jmp 0x1800a83a9
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
lea rcx, str.__FreeBlock__Flags__HEAP_ENTRY_DECOMMITTED____ROUND_UP_TO_POWER2_FreeBlock__PAGE_SIZE____ULONG_PTR_FreeBlock__
call sym.ntdll.dll_DbgPrint
mov ecx, 1
call fcn.1800fc294
mov r9, qword [rsp + 0xc0]
jmp 0x180012f9b
mov qword [rsp + 0x28], 0
mov r9, rbp
mov r8, rbx
mov qword [rsp + 0x20], 0
mov ecx, 3
call fcn.18009a4c0
mov r9, qword [rsp + 0xc0]
mov r11d, dword [rsp + 0x30]
jmp 0x180013039
mov rdx, r10
lea r8, [rbx + 0x20]
shl rdx, 4
sub rdx, 0x20
shr rdx, 2
test rdx, rdx
je 0x1800a8449
test r8b, 4
je 0x1800a842c
dec rdx
mov dword [r8], 0xfeeefeee
add r8, 4
mov rcx, rdx
mov rax, r15
shr rcx, 1
mov rdi, r8
rep stosq qword [rdi], rax
test dl, 1
je 0x1800a8449
mov dword [r8 + rdx*4 - 4], 0xfeeefeee
or byte [rbx + 0xa], 4
jmp 0x180013061
movzx eax, word [r8 - 8]
jmp 0x1800130f8
mov r8, qword [r8]
cmp r14, r8
jne 0x1800130d2
jmp 0x180013104
xor edx, edx
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rcx
xor r9d, r9d
lea ecx, [rdx + 0xd]
call fcn.18009a4c0
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x30]
jmp 0x180013127
lea eax, [r15 + r15]
jmp 0x180013180
xor r9d, r9d
mov qword [rsp + 0x28], 0
mov rdx, rsi
mov qword [rsp + 0x20], 0
lea ecx, [r9 + 3]
call fcn.18009a4c0
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x30]
jmp 0x1800131e4
cmp dword [0x18015d450], 1
jl 0x18001327b
lea rax, [rbx + 0xfff]
and rax, 0xfffffffffffff000
cmp rax, rbx
je 0x18001327b
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], 0
je 0x1800a8536
mov rax, qword gs:[0x60]
lea rcx, str.HEAP__wZ_:
mov rdx, qword [rax + 0x18]
mov rdx, qword [rdx + 0x10]
add rdx, 0x58
call sym.ntdll.dll_DbgPrint
jmp 0x1800a8542
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
lea rcx, str.ROUND_UP_TO_POWER2_FreeBlock__PAGE_SIZE____ULONG_PTR_FreeBlock
call sym.ntdll.dll_DbgPrint
mov ecx, 1
call fcn.1800fc294
nop
jmp 0x18001327b