Function at 0x1401aca20
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
movapd xmmword [rsp + 0x150], xmm7
movapd xmmword [rsp + 0x140], xmm6
mov qword [rsp + 0x30], r8
mov rdi, rcx
mov r15d, dword [rsp + 0x1d8]
mov eax, dword [r9 + 8]
mov ecx, dword [r9 + 0xc]
sub ecx, dword [r9 + 4]
sub eax, dword [r9]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
jle 0x1401acc25
test ecx, ecx
jle 0x1401acc25
mov rbp, qword [rsp + 0x30]
mov ebp, dword [rbp]
test ebp, ebp
jle 0x1401acc25
mov rbx, qword [rsp + 0x30]
mov ebx, dword [rbx + 4]
test ebx, ebx
jle 0x1401acc25
mov r14, r9
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xb0], rdi
xor edx, edx
div ebp
test eax, eax
mov ebp, 1
cmove eax, ebp
imul eax, r15d
cmp eax, 0x1f
mov edi, 0x1f
cmovge eax, edi
lea edx, [rax + 7]
test eax, eax
cmovns edx, eax
sar edx, 3
mov r12d, 8
mov esi, 8
sub esi, edx
mov dword [rsp + 0x28], eax
mov eax, ecx
xor edx, edx
div ebx
test eax, eax
cmovne ebp, eax
imul ebp, r15d
cmp ebp, 0x1f
cmovge ebp, edi
lea eax, [rbp + 7]
test ebp, ebp
cmovns eax, ebp
sar eax, 3
sub r12d, eax
cmp esi, r12d
cmovb r12d, esi
mov dword [rsp + 0x24], ebp
mov dword [rsp + 0x2c], r12d
mov al, byte [0x1405dc5e0]
test al, al
je 0x1401ad0fd
lea rcx, [0x1405dc5b0]
call qword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov al, byte [0x1405dc628]
test al, al
je 0x1401ad13b
mov r13, qword [rsp + 0x1d0]
mov qword [rsp + 0xb8], r13
mov dword [rsp + 0xc0], r15d
mov dword [rsp + 0xc4], r12d
movsxd rax, r15d
movabs rcx, 0xc85abc8da7534a4d
mov rdx, r13
imul rdx, rcx
add rdx, rax
imul rdx, rcx
mov eax, r12d
movabs rbp, 0x193a9814f2f7c16d
imul rbp, rcx
add rbp, rdx
add rbp, rax
movabs rax, 0x8642b0fe3e86671b
imul rax, rbp
bswap rax
or eax, 0x80000000
mov rcx, qword [0x1405dc5f0]
and eax, dword [0x1405dc600]
mov ecx, dword [rcx + rax*4]
test ecx, ecx
js 0x1401acc53
mov rdx, qword [0x1405dc608]
mov rbp, qword [0x1405dc5f8]
mov eax, ecx
jmp 0x1401acbec
lea rax, [rdi + rdi*2]
mov eax, dword [rbp + rax*4]
cmp eax, ecx
je 0x1401acc53
movsxd rdi, eax
mov rbx, rdi
shl rbx, 4
cmp qword [rdx + rbx], r13
jne 0x1401acbe0
cmp dword [rdx + rbx + 8], r15d
jne 0x1401acbe0
cmp dword [rdx + rbx + 0xc], r12d
jne 0x1401acbe0
test eax, eax
js 0x1401acc53
mov rcx, qword [0x1405dc618]
test rcx, rcx
je 0x1401acc53
mov eax, eax
mov rdi, qword [rcx + rax*8]
jmp 0x1401acd0a
mov qword [rdi], 0
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, r12d
mov qword [rsp + 0x60], r15
lea rcx, [0x1405dc5f0]
lea rdx, [rsp + 0xb8]
call fcn.1401c7520
mov rcx, qword [rsp + 0x60]
lea r12d, [rcx + rcx]
mov ecx, ebp
shl r12d, cl
mov r15, qword [0x1405dc618]
movsxd rsi, eax
mov rcx, qword [r15 + rsi*8]
test rcx, rcx
je 0x1401acc95
call fcn.140309590
lea ebx, [r12 + 1]
movsxd rcx, ebx
mov qword [r15 + rsi*8], 0
shl rcx, 2
call fcn.140308730
mov rdi, rax
mov qword [r15 + rsi*8], rax
test r12d, r12d
js 0x1401acd0a
mov eax, 1
mov ecx, ebp
shl eax, cl
cvtsi2sd xmm6, eax
cvtsi2sd xmm7, dword [rsp + 0x60]
mov ebp, ebx
xor ebx, ebx
nop word cs:[rax + rax]
nop dword [rax + rax]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
divsd xmm0, xmm6
subsd xmm0, xmm7
call r13
mulsd xmm0, xmm6
cvttsd2si eax, xmm0
mov rdi, qword [r15 + rsi*8]
mov dword [rdi + rbx*4], eax
add rbx, 1
cmp rbp, rbx
jne 0x1401acce0
lea rcx, [0x1405dc5b0]
call qword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov qword [rsp + 0x70], rdi
mov rbp, qword [rsp + 0x30]
mov eax, dword [rbp]
imul eax, dword [rsp + 0x28]
imul eax, dword [rsp + 0x24]
shl eax, 3
movsxd rcx, eax
shl rcx, 2
call fcn.140308730
mov rsi, rax
mov qword [rsp + 0x50], rax
mov ecx, dword [rsp + 0x2c]
mov r11d, 1
shl r11d, cl
mov edi, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x3c]
mov eax, edi
shl eax, cl
shl r8d, cl
mov ebx, dword [rbp]
mov r10d, dword [rbp + 4]
cdq
idiv ebx
mov r9d, eax
mov eax, r8d
cdq
idiv r10d
mov ebp, r11d
sub ebp, r9d
sub r11d, eax
sar ebp, 1
sar r11d, 1
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x4c], r11d
test ebx, ebx
jle 0x1401aceb9
xor r8d, r8d
mov r10d, dword [rsp + 0x24]
xor r9d, r9d
imul edi, r9d
shl edi, cl
mov eax, edi
cdq
idiv ebx
mov r13d, eax
sub r13d, ebp
mov r12d, r13d
sar r12d, cl
mov eax, r12d
shl eax, cl
sub r13d, eax
cmovs r13d, r8d
mov r11d, 1
sub r11d, r10d
cmp r11d, r10d
jg 0x1401ace9a
mov r8, qword [rsp + 0x70]
mov edi, dword [rsp + 0x28]
add r12d, 1
jmp 0x1401ace05
mov r10d, dword [rsp + 0x24]
lea eax, [r11 + 1]
cmp r11d, r10d
mov r11d, eax
jge 0x1401ace90
mov r15d, 1
sub r15d, edi
cmp r15d, edi
jg 0x1401acdf5
add r15d, 0xffffffff
jmp 0x1401ace33
movsxd rax, ebp
mov eax, dword [r8 + rax*4]
mov dword [rsi + 4], eax
add rsi, 8
cmp r15d, edi
jge 0x1401acdf0
lea eax, [r12 + r15]
add r15d, 1
mov ecx, dword [rsp + 0x38]
add ecx, 0xffffffff
xor edx, edx
test eax, eax
cmovs eax, edx
cmp eax, ecx
cmovge eax, ecx
add eax, dword [r14]
mov dword [rsi], eax
mov ecx, dword [rsp + 0x2c]
mov eax, r15d
shl eax, cl
sub eax, r13d
mov ebx, dword [rsp + 0x1d8]
imul eax, ebx
mov edi, dword [rsp + 0x28]
mov ebp, ebx
shl ebp, cl
cdq
idiv edi
add ebp, eax
add ebx, ebx
shl ebx, cl
test ebp, ebp
jns 0x1401ace80
xor ebp, ebp
cmp ebp, ebx
jl 0x1401ace20
mov ebp, ebx
jmp 0x1401ace20
mov rax, qword [rsp + 0x30]
mov ebx, dword [rax]
xor r8d, r8d
add r9d, 1
cmp r9d, ebx
jge 0x1401aceb0
mov edi, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x48]
jmp 0x1401acda0
mov rax, qword [rsp + 0x30]
mov r10d, dword [rax + 4]
lea rdi, [rsp + 0x88]
mov byte [rsp + 0xa9], 0
mov dword [rsp + 0x7c], ebx
mov dword [rsp + 0x80], r10d
movsxd rax, ebx
movsxd rsi, r10d
imul rsi, rax
mov qword [rsp + 0x88], 0
shl rsi, 2
mov rcx, rsi
call fcn.140308730
mov qword [rsp + 0x88], rax
test rsi, rsi
je 0x1401acf11
mov rcx, rax
xor edx, edx
mov r8, rsi
call sub.msvcrt.dll_memset
mov dword [rsp + 0x78], 0
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], 0
mov word [rsp + 0xa8], 0xff
mov dword [rsp + 0x40], 0
mov ecx, 0x80
call fcn.14030dfa0
mov rdi, qword [rsp + 0xb0]
mov rsi, rax
mov al, byte [rsp + 0x1e8]
lea rcx, [0x14038d5a0]
mov qword [rsi], rcx
mov ecx, 1
xchg dword [rsi + 8], ecx
mov rcx, qword [rsp + 0x1e0]
lea rdx, fcn.1401bff10
mov qword [rsi], rdx
lea rdx, [rsp + 0x24]
mov qword [rsi + 0x10], rdx
lea rdx, [rsp + 0x40]
mov qword [rsi + 0x18], rdx
mov rdx, qword [rsp + 0x30]
mov qword [rsi + 0x20], rdx
mov qword [rsi + 0x28], rcx
lea rcx, [rsp + 0x38]
mov qword [rsi + 0x30], rcx
lea rcx, [rsp + 0x2c]
mov qword [rsi + 0x38], rcx
lea rcx, [rsp + 0x48]
mov qword [rsi + 0x40], rcx
lea rcx, [rsp + 0x50]
mov qword [rsi + 0x48], rcx
lea rcx, [rsp + 0x70]
mov qword [rsi + 0x50], rcx
lea rcx, [rsp + 0x1d8]
mov qword [rsi + 0x58], rcx
mov qword [rsi + 0x60], r14
lea rcx, [rsp + 0x78]
mov qword [rsi + 0x68], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsi + 0x70], rcx
lea rcx, [rsp + 0x28]
mov qword [rsi + 0x78], rcx
test al, al
je 0x1401ad04e
lea rcx, [rsp + 0xb8]
call fcn.1402beb50
mov qword [rsp + 0x58], rsi
lock add dword [rsi + 8], 1
lea rcx, [rsp + 0xb8]
lea rdx, [rsp + 0x58]
call fcn.1402be670
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1401ad03f
lock sub dword [rcx + 8], 1
jne 0x1401ad03f
mov rax, qword [rcx]
call qword [rax + 0x10]
lea rcx, [rsp + 0xb8]
call fcn.1402beb90
jmp 0x1401ad056
mov rcx, rsi
call fcn.1401bff10
lock sub dword [rsi + 8], 1
jne 0x1401ad066
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
test rax, rax
je 0x1401ad086
mov al, byte [rax + 0x50]
mov byte [rsp + 0xa8], al
cmp dword [rsp + 0x7c], 0
jne 0x1401ad096
jmp 0x1401ad0cc
mov al, 0xff
mov byte [rsp + 0xa8], al
cmp dword [rsp + 0x7c], 0
je 0x1401ad0cc
cmp dword [rsp + 0x80], 0
je 0x1401ad0cc
mov ecx, 0x60
call fcn.14030dfa0
mov rsi, rax
lea rdx, [rsp + 0x78]
mov rcx, rax
call fcn.140193d80
mov qword [rdi], rsi
mov rcx, qword [rsp + 0x88]
test rcx, rcx
jne 0x1401ad0e0
jmp 0x1401ad0e5
mov qword [rdi], 0
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x1401ad0e5
call fcn.140309590
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x1401acc2c
call fcn.140309590
jmp 0x1401acc2c
lea rcx, [0x1405dc5e0]
call fcn.14035f9c4
test eax, eax
je 0x1401acb24
lea rcx, [0x1405dc5b0]
call qword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
lea rcx, [0x1401bf750]
call fcn.140001440
lea rcx, [0x1405dc5e0]
call fcn.14035fa9b
jmp 0x1401acb24
lea rcx, [0x1405dc628]
call fcn.14035f9c4
test eax, eax
je 0x1401acb3f
lea rcx, [0x1405dc5f0]
call fcn.140285dc0
xorpd xmm0, xmm0
movupd xmmword [0x1405dc618], xmm0
movupd xmmword [0x1405dc608], xmm0
lea rcx, [0x1401bf770]
call fcn.140001440
lea rcx, [0x1405dc628]
call fcn.14035fa9b
jmp 0x1401acb3f