Function at 0x18001b7d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 8], rcx
push r14
sub rsp, 0x90
mov rdi, rcx
cmp byte [rcx + 0x6f], 0
je 0x18001bb2e
xor r14d, r14d
cmp r14w, word [rcx + 0x28]
je 0x18001b86a
call fcn.1800187c0
mov rbx, rax
movzx edx, byte [rdi + 0x6d]
test dl, dl
jne 0x18001b86a
movzx ecx, byte [rdi + 0x6a]
test cl, cl
je 0x18001b86a
mov rax, qword [rdi + 0xf8]
cmp dword [rax + 0x3c], r14d
jle 0x18001b86a
call fcn.1800187c0
sub rax, rbx
movzx ecx, word [rdi + 0x2a]
imul rdx, rcx, 0xf4240
cmp rax, rdx
jae 0x18001b86a
mov rax, qword [rdi + 0x88]
cmp rax, rbx
jae 0x18001b86a
cmp byte [rdi + 0x18], r14b
je 0x18001b91b
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx eax, byte [rdi + 0x6d]
test al, al
je 0x18001b814
movzx eax, byte [rdi + 0x6a]
test al, al
je 0x18001b8a8
mov rax, qword [rdi + 0x2c8]
mov rsi, qword [rax + 8]
mov edx, 0xffffffff
mov rcx, qword [rsi + 0x10]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, eax
mov rdx, rdi
mov rcx, rsi
call fcn.1800253e0
cmp ebx, 0xffffffff
je 0x18001b8a8
mov rcx, qword [rsi + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x20], 1
mov r9d, 8
lea r8, [rdi + 0x300]
mov rdx, rdi
lea rcx, [0x18011c318]
call fcn.180022870
nop
mov rbx, qword [rdi + 0x300]
mov rbx, qword [rbx]
cmp rbx, qword [rdi + 0x300]
je 0x18001b951
mov r8, rdi
mov edx, dword [rbx + 0x1c]
lea rcx, [0x18011c318]
call fcn.180022770
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x18001b934
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18001b916
cmp rbx, qword [rax + 0x10]
jne 0x18001b916
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18001b903
mov rbx, rax
jmp 0x18001b8d4
test rax, rax
jne 0x18001bb2e
lea rax, [rdx + rbx]
mov qword [rdi + 0x88], rax
jmp 0x18001bb2e
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x18001b8d4
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x18001b940
jmp 0x18001b8d4
jmp 0x18001b95e
cmp byte [rdi + 0x6f], 0
je 0x18001bb2e
mov byte [rdi + 0x6b], 1
lea rcx, [rdi + 0x1a8]
mov qword [rsp + 0x30], rcx
mov edx, 0xffffffff
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [rsp + 0x38], eax
mov rcx, qword [rdi + 0x1b0]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, 0xffffffff
mov rcx, qword [rdi + 0x1d8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x1d8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, qword [rdi + 0x1c8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, 0xffffffff
mov rcx, qword [rdi + 0x1e0]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x1e0]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
movzx eax, byte [rdi + 0x68]
test al, al
je 0x18001ba1f
mov byte [rdi + 0x68], 0
mov rbx, qword [rdi + 0x2d0]
mov edx, 0xffffffff
mov rcx, qword [rbx + 0x68]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp rdi, qword [rbx + 0x70]
jne 0x18001ba0e
mov qword [rbx + 0x70], r14
cmp eax, 0xffffffff
je 0x18001ba36
mov rcx, qword [rbx + 0x68]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18001ba36
movzx eax, byte [rdi + 0x69]
test al, al
je 0x18001ba36
mov rdx, rdi
mov rcx, qword [rdi + 0x2d0]
call fcn.1800267e0
movzx eax, byte [rdi + 0x6a]
test al, al
je 0x18001baca
movzx eax, byte [rdi + 0x6c]
test al, al
jne 0x18001ba61
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 5]
mov rcx, rdi
call fcn.18001c640
mov rcx, qword [rdi + 0x58]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
lea rax, vtable.CInfoBlock.0
mov qword [rsp + 0x40], rax
mov eax, dword [rdi + 0x34]
mov dword [rsp + 0x58], eax
mov rcx, qword [rdi + 0x2d8]
cmp eax, 2
jne 0x18001baa1
mov eax, dword [rcx + 4]
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x4c], r14d
jmp 0x18001baaa
movups xmm0, xmmword [rcx + 8]
movups xmmword [rsp + 0x48], xmm0
mov eax, dword [rdi + 0x7c]
mov dword [rsp + 0x68], eax
mov eax, dword [rdi + 0x78]
mov dword [rsp + 0x6c], eax
lea rdx, [rsp + 0x40]
mov rcx, qword [rdi + 0x60]
call fcn.18001f7c0
mov byte [rdi + 0x6a], 0
mov edx, 0xffffffff
mov rcx, qword [rdi + 0x1d8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, eax
mov edx, 0xffffffff
mov rcx, qword [rdi + 0x1e0]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov byte [rdi + 0x6f], 0
cmp eax, 0xffffffff
je 0x18001bb06
mov rcx, qword [rdi + 0x1e0]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp ebx, 0xffffffff
je 0x18001bb19
mov rcx, qword [rdi + 0x1d8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
cmp dword [rsp + 0x38], 0xffffffff
je 0x18001bb2e
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret