Function at 0x1800ff4c0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r15, r8
mov edi, edx
mov rbx, rcx
xor esi, esi
mov byte [rsp + 0x20], sil
test dword [rcx + 0x74], 0x1000000
je 0x1800ff504
mov rax, qword [0x180156400]
mov r9, qword [section..00cfg]
call r9
jmp 0x1800ff829
lea rdx, [0x180130cf8]
call fcn.18001fc58
test al, al
je 0x1800ff7d9
mov eax, dword [rbx + 0x74]
or eax, 0x10000100
or edi, eax
mov dword [rsp + 0x68], edi
mov rax, r15
mov r12d, 1
test r15, r15
cmove rax, r12
add rax, qword [rbx + 0x100]
and rax, qword [rbx + 0x108]
lea ecx, [r12 + 0x1f]
cmp rax, rcx
cmovb rax, rcx
add rax, 0x10
cmp rax, r15
jb 0x1800ff785
cmp rax, qword [rbx + 0xc8]
ja 0x1800ff785
test r12b, dil
jne 0x1800ff587
mov rcx, qword [rbx + 0x160]
call sym.ntdll.dll_RtlEnterCriticalSection
mov byte [rsp + 0x20], r12b
or edi, r12d
mov dword [rsp + 0x68], edi
xor edx, edx
mov rcx, rbx
call fcn.1801010bc
mov r8, r15
mov edx, edi
mov rcx, rbx
call sym.ntdll.dll_RtlAllocateHeap
mov rdi, rax
mov qword [rsp + 0x28], rax
mov dl, r12b
mov rcx, rbx
call fcn.1801016bc
test rdi, rdi
je 0x1800ff7e1
add rdi, 0xfffffffffffffff0
prefetchw byte [rdi]
cmp byte [rdi + 0xf], 5
jne 0x1800ff5d2
movzx eax, byte [rdi + 0xe]
shl rax, 4
sub rdi, rax
cmp dword [rbx + 0x7c], esi
je 0x1800ff603
mov edx, dword [rbx + 0x88]
xor edx, dword [rdi + 8]
mov dword [rdi + 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 0x1800ff603
mov rdx, rdi
mov rcx, rbx
call fcn.1800fbec0
test byte [rdi + 0xa], 2
je 0x1800ff635
mov rcx, rdi
call fcn.180063b6c
mov r14, rax
test dword [rbx + 0x70], 0x8000000
je 0x1800ff62b
mov ecx, r12d
call fcn.1800244c4
mov word [r14], ax
jmp 0x1800ff62e
mov word [rax], si
movzx eax, word [r14 + 2]
jmp 0x1800ff639
movzx eax, byte [rdi + 0xb]
mov word [rsp + 0x78], ax
cmp dword [rbx + 0x7c], esi
je 0x1800ff658
mov al, byte [rdi + 0xa]
xor al, byte [rdi + 9]
xor al, byte [rdi + 8]
mov byte [rdi + 0xb], al
mov eax, dword [rbx + 0x88]
xor dword [rdi + 8], eax
test dword [rbx + 0x70], 0x20000000
je 0x1800ff66b
xor edx, edx
mov rcx, rbx
call fcn.1801010bc
mov rax, qword gs:[0x60]
mov rdi, qword [rsp + 0x28]
cmp rdi, qword [0x18015a7c0]
jne 0x1800ff6dc
cmp qword [rax + 0x18], rsi
je 0x1800ff6b0
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
mov rdi, qword [rsp + 0x28]
jmp 0x1800ff6bc
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov r8, r15
mov rdx, qword [0x18015a7c0]
lea rcx, str.Just_allocated_block_at__p_for__Ix_bytes_n
call sym.ntdll.dll_DbgPrint
call fcn.18010109c
jmp 0x1800ff7e1
test dword [rax + 0xbc], 0x800
je 0x1800ff7e1
movzx eax, word [rsp + 0x78]
test ax, ax
je 0x1800ff7e1
cmp ax, word [0x18015a7c8]
jne 0x1800ff7e1
movzx eax, word [0x18015a7ca]
cmp word [rbx + 0xd0], ax
jne 0x1800ff7e1
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], rsi
je 0x1800ff74d
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 0x1800ff759
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
movzx edx, word [rsp + 0x78]
mov rcx, rbx
call fcn.1800ec7bc
mov r9, rax
mov r8, r15
mov rdi, qword [rsp + 0x28]
mov rdx, rdi
lea rcx, str.Just_allocated_block_at__p_for_0x_Ix_bytes_with_tag__ws_n
call sym.ntdll.dll_DbgPrint
jmp 0x1800ff6d2
mov rax, qword gs:[0x60]
cmp qword [rax + 0x18], rsi
je 0x1800ff7b7
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 0x1800ff7c3
lea rcx, str.HEAP:
call sym.ntdll.dll_DbgPrint
mov r8, qword [rbx + 0xc8]
mov rdx, r15
lea rcx, str.Invalid_allocation_size____Ix__exceeded__Ix__n
call sym.ntdll.dll_DbgPrint
mov qword [rsp + 0x28], rsi
mov rdi, rsi
jmp 0x1800ff813
cmp byte [rsp + 0x20], sil
je 0x1800ff826
mov rcx, qword [rbx + 0x160]
call sym.ntdll.dll_RtlLeaveCriticalSection
mov rax, rdi
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret