Function at 0x18005b944
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r12, qword [rsp + 0xe0]
mov rbx, r8
mov eax, dword [rcx + 0x94]
mov r15d, edx
mov qword [rsp + 0xd0], r12
mov rbp, rcx
cmp r12, rax
ja 0x18005bce1
mov al, byte [r8 + 0xa]
movzx esi, word [r8 + 8]
mov byte [rsp + 0xe0], al
mov eax, dword [rcx + 0x7c]
shr eax, 0x14
and al, byte [rcx + 0x8a]
shl rsi, 4
add rsi, rbx
xor al, byte [rsi + 0xa]
test al, 1
jne 0x18005bce1
xor edi, edi
cmp dword [rcx + 0x7c], edi
je 0x18005b9df
mov edx, dword [rcx + 0x88]
xor edx, dword [rsi + 8]
mov ecx, edx
mov dword [rsi + 8], edx
shr ecx, 0x10
mov eax, edx
shr eax, 8
xor cl, al
xor cl, dl
shr edx, 0x18
cmp dl, cl
jne 0x1800b8110
movzx edx, word [rsi + 8]
movzx ecx, word [rbx + 8]
add ecx, edx
mov eax, ecx
mov qword [rsp + 0x50], rax
cmp rax, r12
jb 0x18005bcc4
mov r11, qword [rsi + 0x18]
lea r8, [rsi + 0x10]
mov r10, qword [r8]
mov qword [rsp + 0xc0], r10
mov qword [rsp + 0x40], r11
mov rax, qword [r11]
mov r9, qword [r10 + 8]
cmp rax, r9
jne 0x1800b8386
cmp rax, r8
jne 0x1800b8386
mov r14, qword [rbp + 0x138]
mov eax, edx
sub qword [rbp + 0xc0], rax
test r14, r14
je 0x18005bb29
movzx r12d, word [rsi + 8]
mov eax, dword [r14 + 8]
cmp r12, rax
jae 0x18005bc7d
mov rcx, r12
mov r15d, ecx
sub r15d, dword [r14 + 0x18]
lea eax, [r15 + r15]
cmp dword [r14 + 0xc], edi
jne 0x18005ba6c
mov eax, r15d
mov r9d, dword [r14 + 8]
mov r13d, eax
mov rax, qword [r14 + 0x30]
lea edx, [r9 - 1]
mov rdi, qword [rax + r13*8]
dec dword [r14 + 0x10]
cmp ecx, edx
je 0x18005bcb0
cmp rdi, r8
jne 0x18005bb19
cmp qword [r14], 0
mov rdi, qword [r8]
cmovne edx, r9d
cmp ecx, edx
jae 0x18005bcf2
cmp rdi, qword [r14 + 0x20]
je 0x18005baf2
lea r8, [rdi - 0x10]
mov eax, dword [r8 + 8]
cmp dword [rbp + 0x7c], 0
mov dword [rsp + 0x60], eax
je 0x18005bae4
mov edx, dword [rbp + 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 0x1800b8121
movzx eax, word [rsp + 0x60]
cmp r12d, eax
je 0x18005bce5
mov rax, qword [r14 + 0x30]
mov edi, r15d
and r15d, 0x1f
mov cl, r15b
shr rdi, 5
and qword [rax + r13*8], 0
mov eax, 1
mov rdx, qword [r14 + 0x28]
shl eax, cl
not eax
and dword [rdx + rdi*4], eax
mov r12, qword [rsp + 0xd0]
mov r15d, dword [rsp + 0xc8]
mov qword [r11], r10
mov qword [r10 + 8], r11
test byte [rsi + 0xa], 8
jne 0x18005bd59
mov al, byte [rsi + 0xa]
test al, 4
jne 0x1800b8167
movzx edx, word [rbx + 8]
mov cl, byte [rbx + 0xf]
mov edi, edx
mov r13b, byte [rsi + 0xa]
shl rdi, 4
cmp cl, 5
je 0x1800b81ff
test cl, 0x40
jne 0x1800b8212
mov al, cl
and al, 0x3f
cmp al, 0x3f
je 0x1800b8225
movzx ecx, cl
and ecx, 0x3f
mov rax, qword [rsp + 0x50]
sub rdi, rcx
sub rax, r12
cmp rax, 2
cmovbe r12, qword [rsp + 0x50]
xor r14d, r14d
cmp rax, 2
cmova r14, rax
test byte [rsp + 0xe0], 2
jne 0x18005bd71
mov rax, qword gs:[0x60]
test dword [rax + 0xbc], 0x800
jne 0x1800b82ae
mov rcx, r12
mov word [rbx + 8], r12w
mov rsi, qword [rsp + 0xd8]
shl rcx, 4
mov rax, rcx
sub rax, rsi
test r14, r14
je 0x18005bd28
lea r8, [rcx + rbx]
cmp rax, 0x3f
jae 0x1800b82d2
mov byte [rbx + 0xf], al
mov ecx, dword [rbp + 0x70]
mov al, byte [rbx + 0xe]
and ecx, 0x40
test al, al
je 0x18005bca8
movzx eax, al
mov rdx, rbx
shl rax, 0x10
and rdx, 0xffffffffffff0000
sub rdx, rax
add rdx, 0x10000
test ecx, ecx
mov qword [rsp + 0x30], r14
mov word [rsp + 0x28], r12w
mov r9b, r13b
setne al
mov rcx, rbp
mov byte [rsp + 0x20], al
call fcn.18005bdb4
test r15b, 8
jne 0x18005bc90
test byte [rbp + 0x70], 0x40
jne 0x1800b82de
test byte [rbp + 0x70], 0x20
jne 0x1800b836d
and byte [rbx + 0xa], 0x1f
mov al, 1
shr r15d, 4
and r15b, 0xe0
or byte [rbx + 0xa], r15b
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [r14]
test rax, rax
je 0x18005bcb9
mov r14, rax
mov eax, dword [rax + 8]
jmp 0x18005ba4c
cmp rsi, rdi
lea rdx, [rbx + 0x10]
mov rcx, rbp
cmovb rdi, rsi
mov r8, rdi
call fcn.18005c438
jmp 0x18005bc50
mov rdx, rbp
jmp 0x18005bc21
dec dword [r14 + 0x14]
jmp 0x18005ba8b
mov ecx, dword [r14 + 8]
dec ecx
jmp 0x18005ba58
cmp dword [rbp + 0x7c], edi
je 0x18005bce1
movzx eax, dx
shr ax, 8
xor al, dl
xor al, byte [rsi + 0xa]
mov byte [rsi + 0xb], al
mov eax, dword [rbp + 0x88]
xor dword [rsi + 8], eax
xor al, al
jmp 0x18005bc6c
mov rax, qword [r14 + 0x30]
mov qword [rax + r13*8], rdi
jmp 0x18005bb19
mov r12, qword [rsp + 0xd0]
cmp rdi, qword [r14 + 0x20]
jne 0x18005bd50
and qword [rax + r13*8], 0
mov eax, 1
mov rdx, qword [r14 + 0x28]
mov edi, r15d
and r15d, 0x1f
mov cl, r15b
shr rdi, 5
shl eax, cl
not eax
and dword [rdx + rdi*4], eax
jmp 0x18005bb21
or byte [rbx + 0xa], r13b
cmp rax, 0x3f
jae 0x18005bda7
mov byte [rbx + 0xf], al
movzx ecx, word [rbx + 8]
movzx eax, word [rbp + 0x8c]
xor ax, cx
add rcx, rcx
mov word [rbx + rcx*8 + 0xc], ax
jmp 0x18005bc40
mov qword [rax + r13*8], rdi
jmp 0x18005bb21
mov rdx, rsi
mov rcx, rbp
call fcn.18005ca3c
test al, al
jne 0x18005bb3a
jmp 0x1800b814e
movzx eax, word [rbx + 8]
mov rsi, r12
add rax, rax
add rsi, rsi
movups xmm0, xmmword [rbx + rax*8 - 0x10]
movdqu xmmword [rbx + rsi*8 - 0x10], xmm0
mov rax, qword gs:[0x60]
test dword [rax + 0xbc], 0x800
je 0x18005bbc1
jmp 0x1800b8287
mov qword [rcx + rbx], rax
mov byte [rbx + 0xf], 0x3f
jmp 0x18005bd35
mov rdx, rsi
mov rcx, rbp
call fcn.1800fbec0
nop
jmp 0x18005b9df
and qword [rsp + 0x28], 0
xor r9d, r9d
and qword [rsp + 0x20], 0
mov rdx, rbp
lea ecx, [r9 + 3]
call fcn.18009a4c0
mov r10, qword [rsp + 0xc0]
mov r11, qword [rsp + 0x40]
jmp 0x18005bae4
movzx r8d, word [rsi + 8]
mov r9b, 1
mov rdx, rsi
mov rcx, rbp
call fcn.1800128f0
nop
jmp 0x18005bce1
movzx edi, word [rsi + 8]
shl rdi, 4
sub rdi, 0x20
test al, 2
je 0x1800b8181
cmp rdi, 4
jbe 0x1800b8181
sub rdi, 4
lea rcx, [rsi + 0x20]
mov r8d, 0xfeeefeee
mov rdx, rdi
call sym.ntdll.dll_RtlCompareMemoryUlong
mov r14, rax
cmp rax, rdi
je 0x18005bb45
mov rcx, qword gs:[0x60]
cmp qword [rcx + 0x18], 0
je 0x1800b81d2
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
lea rcx, str.HEAP__wZ_:
mov rdx, qword [rdx + 0x10]
add rdx, 0x58
call sym.ntdll.dll_DbgPrint
jmp 0x1800b81de
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
lea r8, [rsi + 0x20]
mov rdx, rsi
add r8, r14
lea rcx, str.HEAP:_Free_Heap_block__p_modified_at__p_after_it_was_freed_n
call sym.ntdll.dll_DbgPrint
call fcn.18010109c
nop
jmp 0x18005bb45
movzx ecx, word [rbp + 0x8c]
movzx eax, word [rbx + 0xc]
xor rcx, rax
jmp 0x18005bb7a
movzx eax, cl
and eax, 0x3f
add rax, rax
movzx ecx, word [rbx + rax*8 + 0xc]
jmp 0x18005bb7a
test cl, cl
jns 0x1800b8257
mov rcx, rbx
shr rcx, 4
xor ecx, ebp
xor ecx, dword [0x18015d458]
xor ecx, dword [rbx + 8]
test cx, cx
je 0x1800b8244
xor edx, edx
jmp 0x1800b8251
shr rcx, 0xc
mov rax, rbx
sub rax, rcx
mov rdx, qword [rax]
movzx edx, word [rdx + 0x24]
jmp 0x1800b8278
cmp dword [rbp + 0x7c], 0
je 0x1800b8278
mov eax, dword [rbx + 8]
mov dword [rsp + 0x48], eax
test dword [rbp + 0x7c], eax
je 0x1800b8273
xor eax, dword [rbp + 0x88]
mov dword [rsp + 0x48], eax
movzx edx, word [rsp + 0x48]
movzx eax, dx
add rax, rax
mov rcx, qword [rbx + rax*8]
jmp 0x18005bb7a
movzx r8d, word [rbx + 8]
mov r9, r12
movzx edx, word [rbx + rsi*8 - 0xe]
mov rcx, rbp
mov dword [rsp + 0x20], 4
call fcn.1800ed110
mov word [rbx + rsi*8 - 0xe], ax
jmp 0x18005bbc1
movzx r8d, word [rbx + 8]
mov r9, r12
movzx edx, byte [rbx + 0xb]
mov rcx, rbp
mov dword [rsp + 0x20], 4
call fcn.1800ed110
mov byte [rbx + 0xb], al
jmp 0x18005bbc1
mov qword [r8], rax
mov byte [rbx + 0xf], 0x3f
jmp 0x18005bbf5
mov rax, rdi
mov ecx, 4
and eax, 3
sub rcx, rax
test rax, rax
cmove rcx, rax
lea rax, [rcx + rdi]
cmp rsi, rax
jbe 0x18005bc50
mov rdx, rsi
sub rdx, rcx
sub rdx, rdi
and rdx, 0xfffffffffffffffc
je 0x18005bc50
lea r8, [rbx + 0x10]
shr rdx, 2
add r8, rax
test rdx, rdx
je 0x18005bc50
mov r9d, 0xbaadf00d
test r8b, 4
je 0x1800b8344
mov dword [r8], r9d
sub rdx, 1
je 0x18005bc50
add r8, 4
mov rcx, rdx
movabs rax, 0xbaadf00dbaadf00d
shr rcx, 1
mov rdi, r8
rep stosq qword [rdi], rax
test dl, 1
je 0x18005bc50
mov dword [r8 + rdx*4 - 4], r9d
jmp 0x18005bc50
movabs rax, 0xabababababababab
mov qword [rbx + rsi + 0x10], rax
mov qword [rbx + rsi + 0x18], rax
jmp 0x18005bc5a
mov qword [rsp + 0x28], rdi
mov rdx, rbp
mov ecx, 0xd
mov qword [rsp + 0x20], rax
call fcn.18009a4c0
nop
jmp 0x18005bce1