Function at 0x180101874
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov byte [rsp + 0x18], r8b
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r10d, r10d
mov r14, r9
cmp rdx, qword [rdx + 0x48]
mov ebp, r10d
mov dword [rsp + 0x90], r10d
mov r13d, r10d
movzx r12d, r10w
mov rsi, rdx
mov rdi, rcx
mov rbx, rdx
jae 0x180101f74
mov rax, qword [rsp + 0xa8]
mov qword [rax], rbx
cmp dword [rdi + 0x7c], r10d
je 0x1801018fd
mov edx, dword [rdi + 0x88]
xor edx, dword [rbx + 8]
mov ecx, edx
mov dword [rbx + 8], edx
shr ecx, 0x10
mov eax, edx
shr eax, 8
xor cl, al
xor cl, dl
shr edx, 0x18
cmp dl, cl
je 0x1801018fd
mov rdx, rbx
mov rcx, rdi
call fcn.1800fbec0
xor r10d, r10d
movzx eax, word [rbx + 0xc]
xor ax, word [rdi + 0x8c]
cmp r12w, ax
jne 0x180101ef2
movzx r12d, word [rbx + 8]
mov dl, byte [rbx + 0xa]
mov r15d, r12d
shl r15, 4
test dl, 1
je 0x1801019bb
mov r8, qword [rsp + 0xb0]
test r8, r8
je 0x180101992
test dl, 2
je 0x18010194a
mov rcx, rbx
call fcn.180063b6c
movzx ecx, word [rax + 2]
jmp 0x18010194e
movzx ecx, byte [rbx + 0xb]
test cx, cx
je 0x180101992
jns 0x180101978
mov eax, 0x7fff
and cx, ax
mov eax, 0x81
cmp cx, ax
jae 0x180101992
movzx eax, cx
mov rcx, qword [rsp + 0xb8]
add qword [rcx + rax*8], r12
jmp 0x180101992
mov eax, 0x800
test ax, cx
jne 0x180101992
cmp cx, word [rdi + 0xe0]
jae 0x180101992
movzx eax, cx
add qword [r8 + rax*8], r12
test byte [rbx + 0xa], 4
je 0x180101c3d
mov rdx, rbx
mov rcx, rdi
call fcn.1800eee04
xor r10d, r10d
test al, al
jne 0x180101c3d
cmp dword [rdi + 0x7c], r10d
jmp 0x180101f56
test byte [rdi + 0x70], 0x40
mov al, dl
setne cl
shr al, 2
and cl, al
test cl, 1
je 0x180101c28
lea rbp, [r15 - 0x20]
test dl, 2
je 0x1801019e5
cmp rbp, 4
jbe 0x1801019e5
sub rbp, 4
test dl, 8
je 0x180101bfb
mov r14, qword [rbx + 0x18]
lea r15, [rbx + 0x10]
mov rbp, qword [r15]
mov rax, qword [r14]
mov r9, qword [rbp + 8]
cmp rax, r9
jne 0x180101bdc
cmp rax, r15
jne 0x180101bdc
sub qword [rdi + 0xc0], r12
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x180101a5f
movzx r8d, word [rbx + 8]
mov eax, dword [rdx + 8]
jmp 0x180101a3d
mov rax, qword [rdx]
test rax, rax
je 0x180101aac
mov rdx, rax
mov eax, dword [rax + 8]
cmp r8, rax
jae 0x180101a2f
mov rcx, r8
mov qword [rsp + 0x28], r8
mov r9, r15
mov dword [rsp + 0x20], ecx
mov r8b, 1
mov rcx, rdi
call fcn.18005c30c
xor r10d, r10d
mov qword [r14], rbp
mov qword [rbp + 8], r14
test byte [rbx + 0xa], 8
je 0x180101ab5
mov rdx, rbx
mov rcx, rdi
call fcn.18005ca3c
xor r10d, r10d
test al, al
jne 0x180101ab5
movzx r8d, word [rbx + 8]
mov r9b, 1
mov rdx, rbx
mov rcx, rdi
call fcn.1800128f0
xor r10d, r10d
mov r14, qword [rsp + 0x98]
mov ebp, dword [rsp + 0x90]
cmp rbx, qword [rsi + 0x48]
jmp 0x1801018b7
mov eax, dword [rdx + 8]
dec eax
mov ecx, eax
jmp 0x180101a45
movzx ebp, word [rbx + 8]
lea r14, [rdi + 0x150]
mov byte [rbx + 0xa], r10b
mov byte [rbx + 0xf], r10b
cmp qword [rdi + 0x138], r10
je 0x180101ae3
mov edx, ebp
mov rcx, rdi
call fcn.18005c238
mov r8, rax
xor r10d, r10d
jmp 0x180101ae6
mov r8, qword [r14]
cmp r14, r8
je 0x180101b27
mov ecx, dword [rdi + 0x7c]
test ecx, ecx
je 0x180101b12
mov eax, dword [r8 - 8]
mov ecx, dword [rdi + 0x7c]
mov dword [rsp + 0x38], eax
test eax, ecx
je 0x180101b0b
xor eax, dword [rdi + 0x88]
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0x38]
jmp 0x180101b17
movzx eax, word [r8 - 8]
movzx eax, ax
cmp rbp, rax
jbe 0x180101b27
mov r8, qword [r8]
cmp r14, r8
jne 0x180101aee
mov rax, qword [r8 + 8]
mov rcx, qword [rax]
cmp rcx, r8
jne 0x180101b43
mov qword [r15], r8
mov qword [r15 + 8], rax
mov qword [rax], r15
mov qword [r8 + 8], r15
jmp 0x180101b5d
xor edx, edx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rcx
xor r9d, r9d
lea ecx, [rdx + 0xd]
call fcn.18009a4c0
xor r10d, r10d
movzx eax, word [rbx + 8]
add qword [rdi + 0xc0], rax
mov rdx, qword [rdi + 0x138]
test rdx, rdx
je 0x180101bae
movzx ecx, word [rbx + 8]
mov eax, dword [rdx + 8]
jmp 0x180101b8b
mov rax, qword [rdx]
test rax, rax
je 0x180101bd2
mov rdx, rax
mov eax, dword [rax + 8]
cmp rcx, rax
jae 0x180101b7d
mov r8, rcx
mov qword [rsp + 0x28], rcx
mov r9, r15
mov dword [rsp + 0x20], r8d
mov rcx, rdi
mov r8b, 1
call fcn.18005c190
xor r10d, r10d
cmp dword [rdi + 0x7c], r10d
je 0x180101a94
mov al, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rdi + 0x88]
xor dword [rbx + 8], eax
jmp 0x180101a94
mov eax, dword [rdx + 8]
dec eax
mov r8d, eax
jmp 0x180101b93
mov qword [rsp + 0x28], r10
mov r8, r15
mov rdx, rdi
mov qword [rsp + 0x20], rax
mov ecx, 0xd
call fcn.18009a4c0
jmp 0x180101a91
lea rcx, [rbx + 0x20]
mov r8d, 0xfeeefeee
mov rdx, rbp
call sym.ntdll.dll_RtlCompareMemoryUlong
mov r14, rax
cmp rax, rbp
jne 0x180101d4d
mov ebp, dword [rsp + 0x90]
mov r14, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
movzx eax, word [rbx + 8]
inc dword [r14]
add qword [rcx], rax
xor r10d, r10d
mov al, byte [rbx + 0xe]
test al, al
je 0x180101c61
movzx eax, al
mov rcx, rbx
shl rax, 0x10
and rcx, 0xffffffffffff0000
sub rcx, rax
add rcx, 0x10000
jmp 0x180101c64
mov rcx, rdi
cmp rcx, rsi
jne 0x180101e9e
cmp byte [rbx + 0xf], 3
jne 0x180101d2a
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x180101e00
shr rax, 0xc
inc r13d
add ebp, eax
mov dword [rsp + 0x90], ebp
cmp dword [rdi + 0x7c], r10d
je 0x180101caf
mov al, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rdi + 0x88]
xor dword [rbx + 8], eax
mov rax, qword [rbx + 0x38]
add rbx, 0x40
add rbx, rax
cmp rbx, qword [rsi + 0x48]
je 0x180101d21
cmp dword [rdi + 0x7c], r10d
je 0x180101cf5
mov edx, dword [rdi + 0x88]
xor edx, dword [rbx + 8]
mov ecx, edx
mov dword [rbx + 8], edx
shr ecx, 0x10
mov eax, edx
shr eax, 8
xor cl, al
xor cl, dl
shr edx, 0x18
cmp dl, cl
je 0x180101cf5
mov rdx, rbx
mov rcx, rdi
call fcn.1800fbec0
xor r10d, r10d
movzx eax, word [rbx + 0xc]
cmp word [rdi + 0x8c], ax
jne 0x180101da7
cmp dword [rdi + 0x7c], r10d
je 0x180101d21
mov al, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rdi + 0x88]
xor dword [rbx + 8], eax
movzx r12d, r10w
jmp 0x180101a9c
cmp dword [rdi + 0x7c], r10d
je 0x180101d45
mov al, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rdi + 0x88]
xor dword [rbx + 8], eax
add rbx, r15
jmp 0x180101a9c
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], 0
je 0x180101d80
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 0x180101d8c
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
lea r8, [rbx + 0x10]
add r8, r14
lea rcx, str.Free_Heap_block__p_modified_at__p_after_it_was_freed_n
mov rdx, rbx
call sym.ntdll.dll_DbgPrint
jmp 0x180101f52
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x180101dd9
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 0x180101de5
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
movzx r8d, word [rbx + 0xc]
lea rcx, str.Heap_block_at__p_has_corrupted_PreviousSize___lx__n
movzx eax, word [rdi + 0x8c]
xor r8d, eax
jmp 0x180101ee8
movzx edx, word [rbx + 8]
mov eax, edx
movzx r8d, dx
shl rax, 4
add rax, rbx
shr r8w, 8
cmp rax, qword [rsi + 0x48]
je 0x180101e6a
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x180101e4e
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 0x180101e5a
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov r8, qword [rsi + 0x48]
lea rcx, str.Heap_block_at__p_is_not_last_block_in_segment___p__n
jmp 0x180101d9a
cmp dword [rdi + 0x7c], r10d
je 0x180101e84
mov cl, byte [rbx + 0xa]
xor cl, r8b
xor cl, dl
mov byte [rbx + 0xb], cl
mov ecx, dword [rdi + 0x88]
xor dword [rbx + 8], ecx
mov al, 1
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x180101ed0
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 0x180101edc
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
movzx r8d, byte [rbx + 0xe]
lea rcx, str.Heap_block_at__p_has_incorrect_segment_offset___x__n
mov rdx, rbx
call sym.ntdll.dll_DbgPrint
jmp 0x180101f52
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x180101f24
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 0x180101f30
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
movzx r8d, word [rbx + 0xc]
lea rcx, str.Heap_entry__p_has_incorrect_PreviousSize_field___04x_instead_of__04x__n
movzx eax, word [rdi + 0x8c]
mov rdx, rbx
xor r8d, eax
movzx r9d, r12w
call sym.ntdll.dll_DbgPrint
cmp dword [rdi + 0x7c], 0
je 0x180101f6d
mov al, byte [rbx + 0xa]
xor al, byte [rbx + 9]
xor al, byte [rbx + 8]
mov byte [rbx + 0xb], al
mov eax, dword [rdi + 0x88]
xor dword [rbx + 8], eax
xor al, al
jmp 0x180101e86
cmp dword [rsi + 0x50], ebp
je 0x180101fcf
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x180101fab
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 0x180101fb7
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov r8d, dword [rsi + 0x50]
lea rcx, str.Heap_Segment_at__p_contains_invalid_NumberOfUnCommittedPages___x____x__n
mov r9d, ebp
mov rdx, rsi
call sym.ntdll.dll_DbgPrint
jmp 0x180101f6d
cmp dword [rsi + 0x54], r13d
je 0x180101e84
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], r10
je 0x18010200b
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 0x180102017
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov r8d, dword [rsi + 0x54]
lea rcx, str.Heap_Segment_at__p_contains_invalid_NumberOfUnCommittedRanges___x____x__n
mov r9d, r13d
jmp 0x180101fc5