Function at 0x1800ffeb0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov r15, r8
mov esi, edx
mov rbx, rcx
xor edi, edi
mov r14d, edi
mov byte [rsp + 0x20], dil
test dword [rcx + 0x74], 0x1000000
je 0x1800ffef4
mov rax, qword [0x180156410]
mov r9, qword [section..00cfg]
call r9
movzx eax, al
jmp 0x18010015c
lea rdx, [0x180130ea0]
call fcn.18001fc58
test al, al
jne 0x1800fff10
mov r14d, edi
mov dword [rsp + 0x24], edi
jmp 0x180100113
mov eax, dword [rbx + 0x74]
bts eax, 0x1c
or esi, eax
mov dword [rsp + 0x68], esi
test sil, 1
jne 0x1800fff3b
mov rcx, qword [rbx + 0x160]
call sym.ntdll.dll_RtlEnterCriticalSection
mov byte [rsp + 0x20], 1
or esi, 1
mov dword [rsp + 0x68], esi
xor edx, edx
mov rcx, rbx
call fcn.1801010bc
lea rdx, [r15 - 0x10]
prefetchw byte [rdx]
cmp byte [rdx + 0xf], 5
jne 0x1800fff5d
movzx eax, byte [rdx + 0xe]
shl rax, 4
sub rdx, rax
mov qword [rsp + 0x28], rdx
lea r8, [0x180130ea0]
mov rcx, rbx
call fcn.180072588
test al, al
je 0x180100113
mov rax, qword gs:[0x60]
cmp r15, qword [0x18015a7e0]
jne 0x1800fffd8
cmp qword [rax + 0x18], rdi
je 0x1800fffb4
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rdx, qword [rcx + 0x10]
add rdx, 0x58
lea rcx, str.HEAP__wZ_:
call sym.ntdll.dll_DbgPrint
jmp 0x1800fffc0
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov rdx, qword [0x18015a7e0]
lea rcx, str.About_to_free_block_at__p_n
call sym.ntdll.dll_DbgPrint
jmp 0x1801000e4
test dword [rax + 0xbc], 0x800
je 0x1801000e9
mov r8d, dword [0x18015a7e8]
test r8d, r8d
je 0x1801000e9
mov rsi, qword [rsp + 0x28]
cmp dword [rbx + 0x7c], edi
je 0x180100035
mov edx, dword [rbx + 0x88]
xor edx, dword [rsi + 8]
mov dword [rsi + 8], edx
mov ecx, edx
shr ecx, 0x10
mov eax, edx
shr eax, 8
xor cl, al
xor cl, dl
shr edx, 0x18
cmp dl, cl
je 0x180100035
mov rdx, rsi
mov rcx, rbx
call fcn.1800fbec0
mov r8d, dword [0x18015a7e8]
test byte [rsi + 0xa], 2
je 0x180100049
mov rcx, rsi
call fcn.180063b6c
movzx ecx, word [rax + 2]
jmp 0x18010004d
movzx ecx, byte [rsi + 0xb]
mov word [rsp + 0x78], cx
cmp dword [rbx + 0x7c], edi
je 0x18010006c
mov al, byte [rsi + 0xa]
xor al, byte [rsi + 9]
xor al, byte [rsi + 8]
mov byte [rsi + 0xb], al
mov eax, dword [rbx + 0x88]
xor dword [rsi + 8], eax
test cx, cx
je 0x1801000e9
cmp cx, r8w
jne 0x1801000e9
movzx eax, word [0x18015a7ea]
cmp word [rbx + 0xd0], ax
jne 0x1801000e9
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], rdi
je 0x1801000b9
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rdx, qword [rcx + 0x10]
add rdx, 0x58
lea rcx, str.HEAP__wZ_:
call sym.ntdll.dll_DbgPrint
jmp 0x1801000c5
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
movzx edx, word [rsp + 0x78]
mov rcx, rbx
call fcn.1800ec7bc
mov r8, rax
mov rdx, r15
lea rcx, str.About_to_free_block_at__p_with_tag__ws_n
call sym.ntdll.dll_DbgPrint
call fcn.18010109c
mov r8, r15
mov edx, dword [rsp + 0x68]
mov rcx, rbx
call sym.ntdll.dll_RtlFreeHeap
mov r14d, eax
mov dword [rsp + 0x24], eax
mov dl, 1
mov rcx, rbx
call fcn.1801016bc
xor edx, edx
mov rcx, rbx
call fcn.1801010bc
jmp 0x180100146
cmp byte [rsp + 0x20], dil
je 0x180100159
mov rcx, qword [rbx + 0x160]
call sym.ntdll.dll_RtlLeaveCriticalSection
mov eax, r14d
add rsp, 0x30
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret