Function at 0x14008cf70
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x1402a7978]
xor rax, rsp
mov qword [rsp + 0x78], rax
movsxd rbx, r9d
mov rdi, rdx
mov rbp, rcx
mov qword [rsp + 0x50], rcx
lea r12, [rcx + 0x30]
mov qword [rsp + 0x58], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r13b, 1
mov byte [rsp + 0x60], r13b
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
imul rbx, rbx, 0x38
add rbx, rbp
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x140308a4c], eax
jle 0x14008d017
lea rcx, [0x140308a4c]
call fcn.1401568cc
cmp dword [0x140308a4c], 0xffffffff
jne 0x14008d017
lea rcx, [0x1401ae760]
call fcn.140156e18
lea rcx, [0x140308a4c]
call fcn.140156860
mov dword [rsp + 0x40], 0x3e3
lea rax, [0x1402a9348]
mov qword [rsp + 0x48], rax
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x14008d085
xor edx, edx
mov rax, rdi
div rcx
shl rdx, 4
mov rcx, qword [rbx + 0x90]
add rcx, rdx
mov rax, qword [rcx]
mov rdx, qword [rbx + 0x70]
cmp rax, rdx
je 0x14008d089
mov rcx, qword [rcx + 8]
mov rdx, qword [rcx]
cmp rax, rdx
je 0x14008d085
cmp qword [rax + 0x10], rdi
je 0x14008d12a
mov rcx, qword [rax]
mov rax, rcx
cmp rcx, rdx
jne 0x14008d070
mov rdx, qword [rbx + 0x70]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0xe0]
lea r8, [rsp + 0x68]
lea rcx, [rbx + 0x68]
call fcn.14008eb20
mov byte [rsp + 0x30], al
mov r14, qword [rbp + 0x28]
mov rsi, qword [rsp + 0x68]
mov rbx, rsi
xor edx, edx
test rsi, rsi
je 0x14008d1bb
mov rdi, rbx
mov rcx, rbx
mov rax, rbx
lea r15d, [rdx + 1]
mov rbp, qword [rsp + 0x70]
test rdi, rdi
je 0x14008d0f7
mov rsi, qword [rsi + 0x20]
mov rax, rsi
mov qword [rsp + 0x68], rsi
test rsi, rsi
cmove rbp, rdx
mov qword [rsp + 0x70], rbp
mov qword [rcx + 0x20], rdx
mov dword [rbx + 0x30], r15d
mov rdi, rax
mov r9, rbx
xor r8d, r8d
xor edx, edx
mov rcx, qword [r14 + 0x28]
call qword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
je 0x14008d132
mov rcx, rdi
mov rax, rdi
mov rbx, rdi
test rdi, rdi
je 0x14008d1a9
xor edx, edx
jmp 0x14008d0d6
mov rdx, rax
jmp 0x14008d089
lea rcx, [r14 + 0x60]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [rbx + 0x20], 0
mov rax, qword [r14 + 0x98]
test rax, rax
je 0x14008d156
mov qword [rax + 0x20], rbx
jmp 0x14008d15d
mov qword [r14 + 0x90], rbx
mov qword [r14 + 0x98], rbx
test rsi, rsi
je 0x14008d18b
test rbx, rbx
je 0x14008d174
mov qword [rbx + 0x20], rsi
jmp 0x14008d17b
mov qword [r14 + 0x90], rsi
mov qword [r14 + 0x98], rbp
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
xchg dword [r14 + 0x58], r15d
lea rcx, [r14 + 0x60]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx r13d, byte [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x68]
xor r14d, r14d
mov ebx, r14d
movzx eax, byte [rsp + 0x30]
mov rbp, qword [rsp + 0x50]
jmp 0x14008d1be
xor r14d, r14d
test al, al
je 0x14008d1cc
lea rcx, [rbp + 0x58]
call fcn.14005e040
nop
test rbx, rbx
je 0x14008d213
mov rdi, rbx
lea rbp, [0x1402a9358]
nop dword [rax + rax]
mov rax, qword [rsi + 0x20]
mov rsi, rax
mov qword [rdi + 0x20], r14
mov rdi, rax
mov rax, qword [rbx + 0x28]
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x48], rbp
xor r9d, r9d
lea r8, [rsp + 0x40]
mov rdx, rbx
xor ecx, ecx
call rax
mov rbx, rdi
test rdi, rdi
jne 0x14008d1e0
test r13b, r13b
je 0x14008d221
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140156510
mov rbx, qword [rsp + 0xd0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret