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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov rbx, r9
mov rdi, r8
mov rsi, rcx
mov rbp, qword [rdx]
test rbp, rbp
je 0x1400860ea
movzx r13d, byte [rbx + 0x10]
cmp r13b, 2
jne 0x140086124
mov r14, rdx
mov byte [rsp + 0x2f], r13b
mov r13, qword [rbx]
mov r12, qword [rbx + 8]
lea r15, [rbx + 0x18]
lea rcx, [rsp + 0x40]
mov rdx, r15
call fcn.1400a1870
mov qword [rsp + 0x70], r13
lock inc qword [r13]
jle 0x1400866c4
lock inc qword [r12 + 0x1d0]
mov qword [rsp + 0xb0], r12
lock inc qword [r12]
jle 0x1400866c4
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x49]
movups xmmword [rsp + 0x158], xmm1
movups xmmword [rsp + 0x14f], xmm0
movzx r13d, byte [rsp + 0x59]
mov eax, dword [rsp + 0x5a]
mov dword [rsp + 0x80], eax
movzx eax, word [rsp + 0x5e]
mov word [rsp + 0x84], ax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 9]
movups xmmword [rsp + 0x97], xmm0
movups xmmword [rsp + 0xa0], xmm1
movzx ecx, byte [rbx + 0x31]
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x3c], ax
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x38], eax
cmp r13b, 2
jne 0x140086243
mov r15, qword [rsp + 0x70]
mov r14, qword [rsp + 0xb0]
movzx r13d, byte [rsp + 0x2f]
jmp 0x1400861a9
mov r15, qword [rbx]
mov r14, qword [rbx + 8]
movzx r13d, byte [rbx + 0x10]
movups xmm0, xmmword [rbx + 0x21]
movaps xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rbx + 0x11]
movaps xmmword [rsp + 0x40], xmm0
movzx r12d, byte [rbx + 0x31]
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x30], eax
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x34], ax
xor ebp, ebp
jmp 0x1400864bb
movups xmm0, xmmword [rbx + 0x18]
movups xmm1, xmmword [rbx + 0x21]
movups xmmword [rsp + 0x50], xmm1
movups xmmword [rsp + 0x47], xmm0
movzx ecx, byte [rbx + 0x31]
movzx eax, word [rbx + 0x36]
mov word [rsp + 0x3c], ax
mov eax, dword [rbx + 0x32]
mov dword [rsp + 0x38], eax
mov r15, qword [rbx]
mov r14, qword [rbx + 8]
mov eax, dword [rbx + 0x14]
mov dword [rsp + 0x43], eax
mov eax, dword [rbx + 0x11]
mov dword [rsp + 0x40], eax
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x90], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x94], ax
movzx eax, byte [rsp + 0x46]
mov byte [rsp + 0x96], al
mov rax, qword [rsp + 0x47]
mov qword [rsp + 0x97], rax
movzx eax, byte [rsp + 0x4f]
mov byte [rsp + 0x9f], al
mov eax, dword [rsp + 0x90]
movzx edx, word [rsp + 0x94]
movzx r8d, byte [rsp + 0x96]
mov r9, qword [rsp + 0x97]
movzx r10d, byte [rsp + 0x9f]
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x40], eax
mov word [rsp + 0x44], dx
mov byte [rsp + 0x46], r8b
mov qword [rsp + 0x47], r9
mov byte [rsp + 0x4f], r10b
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x30], eax
movzx eax, word [rsp + 0x3c]
mov word [rsp + 0x34], ax
jmp 0x140086212
pause
mov rax, qword [rbp + 8]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x140086210
test rax, rax
js 0x1400866bd
lea rdx, [rax + 1]
lock cmpxchg qword [rbp + 8], rdx
jne 0x140086220
mov r12d, ecx
jmp 0x1400864bb
add rbx, 0x32
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0xd8], 2
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0xd9], xmm0
movups xmmword [rsp + 0xe9], xmm1
mov byte [rsp + 0xf9], cl
mov eax, dword [rbx]
mov dword [rsp + 0xfa], eax
movzx eax, word [rbx + 4]
mov word [rsp + 0xfe], ax
movups xmm0, xmmword [rsp + 0x148]
movups xmm1, xmmword [rsp + 0x158]
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x130], xmm1
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x88], eax
movzx eax, word [rsp + 0x84]
mov word [rsp + 0x8c], ax
lea rbx, [rbp + 0x10]
mov rcx, rbx
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [str.8o._]
mov rax, qword [rax]
shl rax, 1
test rax, rax
jne 0x140086660
xor eax, eax
movzx ecx, byte [rbp + 0x18]
test cl, cl
jne 0x140086673
mov qword [rsp + 0xc0], rbx
movzx ecx, byte [rdi]
test rcx, rcx
mov dword [rsp + 0xbc], eax
je 0x140086340
movzx ebx, byte [rsp + 0x2f]
cmp ecx, 1
jne 0x140086349
movzx ecx, byte [rdi + 1]
mov al, 1
jmp 0x140086389
movzx ebx, byte [rsp + 0x2f]
xor eax, eax
jmp 0x140086389
mov r12, qword [rdi + 8]
movzx eax, byte [0x1402e6951]
mov ecx, 0x20
mov edx, 8
call fcn.140018800
test rax, rax
je 0x1400866c8
mov r15, rax
lea rdx, [r12 + 0x18]
mov rax, qword [r12]
mov r8, qword [r12 + 8]
mov r9, qword [r12 + 0x10]
mov rcx, r15
call qword [rax]
mov al, 2
lea r12, [rbp + 0x20]
mov byte [rsp + 0x40], al
mov byte [rsp + 0x41], cl
mov qword [rsp + 0x48], r15
lea rcx, [rsp + 0x50]
lea rdx, [rdi + 0x28]
mov rax, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
call qword [rax]
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0xc8]
mov rcx, r12
mov r9, r14
call fcn.1400866e0
lea rcx, [rbp + 0x30]
mov rdx, rdi
call fcn.140030360
lea rdx, [rbp + 0x90]
lea rcx, [rsp + 0x40]
mov r8, rdi
call fcn.1400305b0
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x140086419
lea rcx, [rsp + 0x40]
call fcn.140057110
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x140086419
shl rdx, 3
mov r8d, 8
mov rcx, r14
call fcn.140018810
mov rcx, qword [rdi + 0x30]
lea rax, [rcx + 1]
cmp rax, 2
mov r15, qword [rsp + 0x70]
mov r12d, r13d
jb 0x140086446
lock dec qword [rcx + 8]
jne 0x140086446
mov edx, 0xe0
mov r8d, 8
call fcn.140018810
mov qword [rdi + 0x30], 0
movaps xmm0, xmmword [rsp + 0x120]
movaps xmm1, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x30], eax
movzx eax, word [rsp + 0x8c]
mov word [rsp + 0x34], ax
cmp byte [rsp + 0xbc], 0
mov r14, qword [rsp + 0xb0]
jne 0x1400864a8
mov rax, qword [str.8o._]
mov rax, qword [rax]
shl rax, 1
test rax, rax
jne 0x1400866a7
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
xor ebp, ebp
mov r13d, ebx
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x78], eax
movzx eax, word [rsp + 0x34]
mov word [rsp + 0x7c], ax
movzx eax, byte [rdi]
test rax, rax
je 0x1400864fc
cmp eax, 1
jne 0x140086500
movzx ecx, byte [rdi + 1]
mov al, 1
jmp 0x140086559
xor eax, eax
jmp 0x140086559
mov byte [rsp + 0x70], r12b
mov r12, r15
mov r15d, r13d
mov r13, r14
mov r14, qword [rdi + 8]
movzx eax, byte [0x1402e6951]
mov ecx, 0x20
mov edx, 8
call fcn.140018800
test rax, rax
je 0x1400866c8
mov rbx, rax
lea rdx, [r14 + 0x18]
mov rax, qword [r14]
mov r8, qword [r14 + 8]
mov r9, qword [r14 + 0x10]
mov rcx, rbx
call qword [rax]
mov al, 2
mov r14, r13
mov r13d, r15d
mov r15, r12
movzx r12d, byte [rsp + 0x70]
mov byte [rsp + 0x40], al
mov byte [rsp + 0x41], cl
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x50]
lea rbx, [rdi + 0x28]
mov rax, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
mov rdx, rbx
call qword [rax]
movaps xmm0, xmmword [rsp + 0x100]
movaps xmm1, xmmword [rsp + 0x110]
movups xmmword [rsi + 0x51], xmm1
movups xmmword [rsi + 0x41], xmm0
mov eax, dword [rsp + 0x78]
mov dword [rsi + 0x62], eax
movzx eax, word [rsp + 0x7c]
mov word [rsi + 0x66], ax
mov qword [rsi + 0x30], r15
mov qword [rsi + 0x38], r14
mov byte [rsi + 0x40], r13b
mov byte [rsi + 0x61], r12b
mov byte [rsi + 0x70], 0
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi + 0x20], xmm2
mov qword [rsi + 0x68], rbp
mov rcx, rdi
call fcn.14008cd40
cmp byte [rdi], 2
jb 0x140086610
mov r14, qword [rdi + 8]
lea rcx, [r14 + 0x18]
mov rax, qword [r14]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
call qword [rax + 0x10]
mov edx, 0x20
mov r8d, 8
mov rcx, r14
call fcn.140018810
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
mov r8, qword [rdi + 0x20]
mov rcx, rbx
call qword [rax + 0x10]
mov rcx, qword [rdi + 0x30]
lea rax, [rcx + 1]
cmp rax, 2
jae 0x140086647
mov rax, rsi
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec qword [rcx + 8]
jne 0x140086630
mov edx, 0xe0
mov r8d, 8
call fcn.140018810
jmp 0x140086630
call fcn.1402219e0
xor al, 1
movzx ecx, byte [rbp + 0x18]
test cl, cl
je 0x140086317
mov qword [rsp + 0x40], rbx
mov byte [rsp + 0x48], al
lea rax, str.C:UsersJuanjo.cargo_registry_srcindex.crates.io_6f17d22bba15001fhyper_0.14.27_srcclientpool.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140242af0]
lea r9, [0x140242b20]
lea r8, [rsp + 0x40]
mov edx, 0x2b
call fcn.140222a70
ud2
call fcn.1402219e0
test al, al
jne 0x1400864a8
mov byte [rbp + 0x18], 1
jmp 0x1400864a8
call fcn.14021c530
ud2
ud2
mov ecx, 8
mov edx, 0x20
call fcn.140222360
ud2