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

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa8
mov qword [rbp - 0x19], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov rdi, rcx
xor esi, esi
mov dword [rbp - 0x69], esi
mov r13, qword [0x14047d100]
test r13, r13
jne 0x1401ca1de
mov ecx, 0x128
call fcn.14010a334
mov qword [rbp + 0x67], rax
mov rcx, rax
call fcn.14023c250
mov r13, rax
mov qword [0x14047d100], rax
mov rbx, qword [r13 + 0x30]
mov rbx, qword [rbx + 0x18]
mov rbx, qword [rbx]
mov r14d, dword [0x14047d1e0]
test r14d, r14d
jne 0x1401ca228
call qword [sym.imp.WINMM.dll_timeGetTime]
mov r14d, eax
mov ecx, dword [0x14047d1e0]
cmp eax, ecx
jae 0x1401ca222
mov ecx, dword [0x14047d1e0]
add ecx, 0xfffffc18
cmp eax, ecx
jae 0x1401ca228
mov ecx, eax
xchg dword [0x14047d1e0], ecx
jmp 0x1401ca228
xchg dword [0x14047d1e0], eax
cmp dword [rbx + 0x14], 1
je 0x1401ca23b
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x1401ca23b
mov rsi, qword [rax + 0x10]
mov rcx, qword [rdi - 0x98]
lea r15, [0x1402be078]
test rsi, rsi
je 0x1401ca298
test rcx, rcx
je 0x1401ca273
cmp rcx, rsi
je 0x1401ca273
mov rax, rsi
nop dword [rax + rax]
mov rax, qword [rax + 0x18]
cmp rax, rcx
je 0x1401ca273
test rax, rax
jne 0x1401ca260
jmp 0x1401ca534
lea rcx, [rdi - 0xb0]
mov rax, qword [rcx]
mov r8, rsi
lea rdx, [rbp - 0x61]
call qword [rax + 0x158]
nop
mov ecx, 1
mov dword [rbp - 0x69], ecx
mov rdx, qword [rax]
jmp 0x1401ca2ab
mov qword [rbp + 0x7f], r15
lea rax, [rbp + 0x7f]
mov ecx, 2
mov dword [rbp - 0x69], ecx
mov rdx, r15
mov qword [rbp + 0x6f], rdx
mov qword [rax], r15
mov r12d, 0xffffffff
lea r8, [0x1402be068]
test cl, 2
je 0x1401ca2f4
and ecx, 0xfffffffd
mov dword [rbp - 0x69], ecx
mov rdx, qword [rbp + 0x7f]
add rdx, 0xfffffffffffffff0
cmp rdx, r8
je 0x1401ca2f4
mov eax, r12d
lock xadd dword [rdx], eax
test eax, eax
jne 0x1401ca2f1
mov rcx, rdx
call fcn.14010a370
lea r8, [0x1402be068]
mov ecx, dword [rbp - 0x69]
test cl, 1
je 0x1401ca31c
and ecx, 0xfffffffe
mov dword [rbp - 0x69], ecx
mov rcx, qword [rbp - 0x61]
add rcx, 0xfffffffffffffff0
cmp rcx, r8
je 0x1401ca31c
mov eax, r12d
lock xadd dword [rcx], eax
test eax, eax
jne 0x1401ca31c
call fcn.14010a370
mov rax, qword [rdi + 0x30]
mov r15, qword [rbp + 0x6f]
cmp r15, rax
je 0x1401ca342
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], r15
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 0x51]
call fcn.14001c7b0
test eax, eax
jne 0x1401ca34c
cmp rsi, qword [rdi + 0x20]
mov byte [rbp + 0x67], 0
je 0x1401ca350
mov byte [rbp + 0x67], 1
mov qword [rdi + 0x20], rsi
lea rax, [r15 - 0x10]
lea rdx, [0x1402be068]
cmp rax, rdx
je 0x1401ca371
mov ecx, 1
lock xadd dword [rax], ecx
mov r15, qword [rbp + 0x6f]
xchg qword [rdi + 0x30], r15
lea rcx, [r15 - 0x10]
cmp rcx, rdx
je 0x1401ca38e
mov eax, r12d
lock xadd dword [rcx], eax
test eax, eax
jne 0x1401ca38e
call fcn.14010a370
mov ecx, dword [r13 + 0x88]
mov eax, dword [r13 + 0x8c]
cmp ecx, dword [rdi + 0x3c]
jg 0x1401ca3ab
cmp eax, dword [rdi + 0x40]
jg 0x1401ca3ab
xor r15b, r15b
jmp 0x1401ca3ae
mov r15b, 1
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], eax
lea rdx, [rbp - 0x11]
mov rcx, rbx
call fcn.140057f80
mov rdx, qword [rax]
lea rcx, [rbp + 0x77]
call fcn.1400912b0
movss xmm6, dword [rbp + 0x7b]
movaps xmm1, xmm6
subss xmm1, dword [rdi + 0x1c]
movss xmm7, dword [rbp + 0x77]
movaps xmm0, xmm7
subss xmm0, dword [rdi + 0x18]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__hypotf]
comiss xmm0, dword [0x1403a8c80]
seta al
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movsd qword [rbp + 0x77], xmm1
movsd qword [rdi + 0x18], xmm1
movzx edx, byte [rbp + 0x67]
test dl, dl
jne 0x1401ca417
test r15b, r15b
jne 0x1401ca417
test al, al
je 0x1401ca41b
mov dword [rdi + 0x44], r14d
movzx ecx, byte [rdi - 8]
test cl, 2
jne 0x1401ca4a2
mov eax, dword [rdi + 0x48]
add eax, 0x1f4
cmp r14d, eax
jb 0x1401ca4a2
mov rax, qword [rbp + 0x6f]
cmp byte [rax], 0
je 0x1401ca511
mov rcx, qword [rdi + 0x28]
cmp rax, rcx
je 0x1401ca511
mov qword [rbp - 0x49], rcx
mov qword [rbp - 0x41], rax
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x41]
call fcn.14001c7b0
test eax, eax
je 0x1401ca511
mov eax, dword [rdi + 0x44]
add eax, dword [rdi + 0x38]
cmp r14d, eax
jbe 0x1401ca511
cvtps2pd xmm0, xmm6
addsd xmm0, qword [0x1403a8d30]
movsd qword [rbp - 0x31], xmm0
cvtps2pd xmm0, xmm7
addsd xmm0, qword [0x1403a8d30]
movsd qword [rbp - 0x39], xmm0
mov eax, dword [rbp - 0x39]
mov dword [rbp + 0x67], eax
mov eax, dword [rbp - 0x31]
jmp 0x1401ca4e2
test rsi, rsi
je 0x1401ca4fb
test r15b, r15b
jne 0x1401ca4fb
mov rax, qword [rbp + 0x6f]
cmp byte [rax], r15b
je 0x1401ca4fb
test dl, dl
je 0x1401ca511
cvtps2pd xmm0, xmm6
addsd xmm0, qword [0x1403a8d30]
movsd qword [rbp - 0x21], xmm0
cvtps2pd xmm0, xmm7
addsd xmm0, qword [0x1403a8d30]
movsd qword [rbp - 0x29], xmm0
mov eax, dword [rbp - 0x29]
mov dword [rbp + 0x67], eax
mov eax, dword [rbp - 0x21]
lea rcx, [rdi - 0xb0]
mov dword [rbp + 0x6b], eax
lea r8, [rbp + 0x6f]
mov rdx, qword [rbp + 0x67]
call fcn.1401ca6a0
jmp 0x1401ca511
test cl, 2
je 0x1401ca511
mov dword [rdi + 0x48], r14d
lea rcx, [rdi - 0xb0]
call fcn.1401ca560
nop
mov rcx, qword [rbp + 0x6f]
add rcx, 0xfffffffffffffff0
lea rax, [0x1402be068]
cmp rcx, rax
je 0x1401ca534
lock xadd dword [rcx], r12d
test r12d, r12d
jne 0x1401ca534
call fcn.14010a370
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0x80]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret