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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x120], xmm7
movaps xmmword [rsp + 0x130], xmm8
movaps xmmword [rsp + 0x140], xmm9
mov qword [rsp + 0x48], r8
mov rbx, rcx
mov rbp, rdx
mov dword [rsp + 0x44], r9d
test r9d, r9d
jle 0x1401ff600
mov rdx, qword [r8]
call fcn.1401f1960
mov rsi, rax
test rax, rax
je 0x1401ff600
mov rdx, qword [rax]
mov rcx, rbx
call fcn.1401f1cd0
test rbp, rbp
je 0x1401ff5fd
inc dword [rbp + 0x10]
mov qword [rsi], rbp
mov r8, qword [rsp + 0x48]
mov rdx, rbp
mov rcx, rbx
call fcn.1401f1990
test eax, eax
je 0x1401ffffe
mov eax, dword [rsp + 0x44]
cmp dword [rbx + 0x68], eax
mov rdx, qword [rbp + 0x18]
jge 0x1401ff630
cmp qword [rbp + 8], 1
jne 0x1401ffd4b
mov ax, word [rdx + 2]
xchg al, ah
movzx eax, ax
mov dword [rsp + 0x58], eax
inc eax
movsxd r14, eax
mov dword [rsp + 0x68], eax
imul rcx, r14, 0x34
call fcn.14024d6d0
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1401ffd20
imul r11, r14, 0x30
lea rax, [r14*4]
xor esi, esi
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x78]
lea rdx, [rax + r11]
xor eax, eax
mov rdi, rdx
rep stosb byte [rdi], al
mov rdi, qword [rsp + 0x38]
mov r8, qword [rbp + 0x18]
cmp dword [rsp + 0x58], esi
jle 0x1401ff6af
mov dl, byte [rbx + 0x27]
mov cl, byte [rbx + 0x25]
mov qword [rsp + 0x20], rdi
mov r9d, esi
add rdi, 0x30
inc esi
call fcn.1401f1910
jmp 0x1401ff68a
mov eax, dword [rbx + 0x20]
add r8, 2
mov rsi, qword [rsp + 0x48]
mov rdi, r8
lea ecx, [rax - 2]
xor eax, eax
movsxd rcx, ecx
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x38]
mov dword [rbp + 0x14], 1
mov ecx, 0xc
lea rax, [rax + r11 - 0x30]
mov rdi, rax
rep movsd dword [rdi], dword [rsi]
cmp qword [rbp + 8], 1
jne 0x1401ff720
mov rdx, rbp
mov rcx, rbx
call fcn.1401f19f0
mov rdx, rbp
mov rcx, rbx
mov r13, rax
call fcn.1401f19f0
mov rdx, qword [rbp + 0x18]
mov r12, rax
mov eax, dword [rbx + 0x2c]
inc eax
mov dword [rbx + 0x2c], eax
xchg al, ah
mov dword [rbp + 0x14], 1
mov word [rdx], ax
jmp 0x1401ff735
mov rdx, qword [rbp]
mov rcx, rbx
mov r12, rbp
call fcn.1401f19f0
inc dword [rbp + 0x10]
mov r13, rax
test r12, r12
je 0x1401ffd26
test r13, r13
sete byte [rsp + 0x60]
je 0x1401ffd26
mov al, byte [rsp + 0x60]
movsxd rcx, dword [rbx + 0x20]
mov rdi, qword [r12 + 0x18]
rep stosb byte [rdi], al
movsxd rcx, dword [rbx + 0x20]
mov rdi, qword [r13 + 0x18]
rep stosb byte [rdi], al
movzx eax, byte [rbx + 0x24]
lea rsi, [rax + 1]
lea rax, [r14 + 2]
imul rsi, rax
shl rsi, 2
mov rcx, rsi
call fcn.14024d6d0
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1401ffd26
movzx edx, byte [rbx + 0x24]
mov edi, dword [rsp + 0x68]
mov rcx, rsi
xor esi, esi
mov rax, rdx
add rdx, rdx
imul eax, edi
cdqe
add rdx, rax
mov rax, qword [rsp + 0x50]
mov rdi, rax
lea r15, [rax + rdx*4]
mov al, byte [rsp + 0x60]
rep stosb byte [rdi], al
xor edi, edi
movzx eax, byte [rbx + 0x24]
mov r9d, esi
mov byte [rsp + 0x70], al
mov dword [rsp + 0x84], eax
cmp eax, esi
jle 0x1401ff821
movzx eax, byte [rsp + 0x70]
mov rcx, qword [rsp + 0x50]
add rax, rax
add rax, rdi
lea rdx, [rcx + rax*4]
xor eax, eax
mov qword [rcx + rsi*8], rdx
mov dword [rdx + rax*4], eax
inc rax
lea ecx, [rax - 1]
cmp dword [rsp + 0x58], ecx
jg 0x1401ff7ee
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x28], r15
mov rcx, rbx
inc rsi
mov r8d, dword [rsp + 0x68]
add rdi, r14
mov qword [rsp + 0x20], rax
call fcn.1401ba190
jmp 0x1401ff7be
xor eax, eax
xor r14d, r14d
xorps xmm8, xmm8
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x90], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x60], rax
cmp dword [rsp + 0x84], r14d
jle 0x1401ffa8a
mov eax, dword [rbx + 0x20]
movzx ecx, byte [rbx + 0x27]
mov edi, 3
xorps xmm7, xmm7
xor r15d, r15d
movaps xmm6, xmm7
movaps xmm9, xmm7
sub eax, 4
cdq
idiv ecx
cdq
idiv edi
mov r11d, eax
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x68]
sub eax, r11d
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x94]
cmp r11d, eax
jg 0x1401ffa62
mov rax, qword [rsp + 0x50]
lea rdi, [rsp + 0xb0]
mov ecx, 0xc
mov qword [rsp + 0x88], rdi
mov rdi, qword [rsp + 0x38]
mov rax, qword [rax + r14*8]
movsxd rsi, dword [rax]
imul rsi, rsi, 0x30
add rsi, rdi
mov rdi, qword [rsp + 0x88]
rep movsd dword [rdi], dword [rsi]
mov rdi, qword [rsp + 0x78]
mov ecx, 0xc
movsxd rsi, dword [rax + rdi - 4]
mov rdi, qword [rsp + 0x38]
imul rsi, rsi, 0x30
add rsi, rdi
mov rdi, qword [rsp + 0x60]
rep movsd dword [rdi], dword [rsi]
mov esi, 1
cmp dword [rsp + 0x58], esi
jle 0x1401ff93f
movsxd r8, dword [rax + rsi*4]
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x98], rax
imul r8, r8, 0x30
add r8, rdi
cmp r11d, esi
jle 0x1401ff925
mov rdx, qword [rsp + 0x88]
jmp 0x1401ff92a
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
inc rsi
call fcn.1401bffa0
mov rax, qword [rsp + 0x98]
jmp 0x1401ff8f8
movzx esi, byte [rbx + 0x25]
mov r10b, byte [rbx + 0x26]
lea rdi, [rsp + 0xb0]
mov r8, rdi
mov edx, r10d
mov ecx, esi
call fcn.1401bfde0
mov r8, qword [rsp + 0x60]
mov ecx, esi
addsd xmm9, xmm0
call fcn.1401bfde0
mov r9, qword [rsp + 0x60]
mov r8, rdi
xor ecx, ecx
movsd xmm2, qword [0x140355520]
addsd xmm9, xmm0
cmp ecx, esi
jge 0x1401ff9f6
mov edx, dword [r9 + 8]
mov eax, dword [r8 + 8]
test r10b, r10b
je 0x1401ff9ce
cmp edx, eax
jl 0x1401ff9c8
cvtsi2sd xmm1, edx
cvtsi2sd xmm0, dword [r8 + 0xc]
cvtsi2sd xmm3, dword [r9 + 0xc]
minsd xmm0, xmm3
add r8, 8
add r9, 8
comisd xmm1, xmm0
ja 0x1401ff9f3
subsd xmm0, xmm1
add ecx, 2
mulsd xmm2, xmm0
jmp 0x1401ff984
cvtsi2sd xmm1, eax
jmp 0x1401ff99d
movd xmm1, eax
movd xmm0, edx
comiss xmm1, xmm0
ja 0x1401ff9ed
cvtss2sd xmm1, xmm0
cvtss2sd xmm0, dword [r8 + 0xc]
cvtss2sd xmm3, dword [r9 + 0xc]
jmp 0x1401ff9a9
cvtss2sd xmm1, xmm1
jmp 0x1401ff9df
xorps xmm2, xmm2
mov cl, byte [rsp + 0x70]
xorps xmm0, xmm0
lea r8, [rsp + 0xb0]
mov edx, r10d
addsd xmm2, xmm0
call fcn.1401bfca0
mov r8, qword [rsp + 0x60]
mov edx, r10d
movaps xmm3, xmm0
call fcn.1401bfca0
addsd xmm0, xmm3
cmp dword [rsp + 0x74], r11d
je 0x1401ffa42
comisd xmm6, xmm2
ja 0x1401ffa49
ucomisd xmm6, xmm2
jp 0x1401ffa4e
jne 0x1401ffa4e
comisd xmm7, xmm0
jbe 0x1401ffa4e
jmp 0x1401ffa49
mov r15d, dword [rsp + 0x74]
jmp 0x1401ffa54
mov r15d, r11d
jmp 0x1401ffa54
movaps xmm0, xmm7
movaps xmm2, xmm6
inc r11d
movaps xmm7, xmm0
movaps xmm6, xmm2
jmp 0x1401ff88a
test r14, r14
je 0x1401ffa6e
comisd xmm8, xmm9
jbe 0x1401ffa82
mov dword [rsp + 0x90], r14d
movaps xmm8, xmm9
mov dword [rsp + 0x80], r15d
inc r14
jmp 0x1401ff845
movsxd rax, dword [rsp + 0x90]
mov rdi, qword [rsp + 0x50]
mov ecx, 0xc
lea r14, [rsp + 0xe0]
lea r15, [rdi + rax*8]
mov rdi, qword [rsp + 0x38]
lea rax, [rsp + 0xb0]
mov rdx, qword [r15]
movsxd rsi, dword [rdx]
imul rsi, rsi, 0x30
add rsi, rdi
mov rdi, rax
movsxd rax, dword [rsp + 0x80]
rep movsd dword [rdi], dword [rsi]
mov ecx, 0xc
mov rdi, r14
mov rdx, qword [r15]
movsxd rsi, dword [rdx + rax*4]
mov rax, qword [rsp + 0x38]
imul rsi, rsi, 0x30
add rsi, rax
rep movsd dword [rdi], dword [rsi]
xor esi, esi
cmp dword [rsp + 0x80], esi
jle 0x1401ffb04
mov rdx, r12
lea rdi, [rsp + 0xb0]
jmp 0x1401ffb0a
mov rdx, r13
mov rdi, r14
mov rax, qword [r15]
mov rcx, rbx
movsxd r8, dword [rax + rsi*4]
mov rax, qword [rsp + 0x38]
inc rsi
imul r8, r8, 0x30
add r8, rax
call fcn.1401f1990
mov rdx, rdi
call fcn.1401bffa0
lea eax, [rsi - 1]
cmp dword [rsp + 0x58], eax
jg 0x1401ffaee
mov rcx, qword [rsp + 0x50]
call fcn.14024c7d0
mov rdx, r13
mov rcx, rbx
call fcn.1401f1dd0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
cmp qword [r12 + 8], 0
je 0x1401ffba1
mov rax, qword [r13 + 8]
cmp qword [rbp + 8], 1
mov rsi, qword [r12]
mov qword [rsp + 0xe0], rax
mov rax, qword [r12 + 8]
mov qword [rsp + 0xb0], rax
jne 0x1401ffbb7
mov eax, dword [rsp + 0x44]
lea r8, [rsp + 0xb0]
mov rdx, rsi
mov rcx, rbx
lea r9d, [rax + 1]
call fcn.1401ff590
jmp 0x1401ffbf4
mov rdx, r12
mov rcx, rbx
call fcn.1401f1dd0
mov edi, eax
test eax, eax
je 0x1401ffb60
jmp 0x1401ffd2b
lea r8, [rsp + 0xac]
mov rdx, r12
mov rcx, rbx
call fcn.1401f1ab0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
mov r9d, dword [rsp + 0xac]
lea r8, [rsp + 0xb0]
mov rdx, rsi
mov rcx, rbx
call fcn.1401f1a60
call fcn.1401b9ee0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
mov eax, dword [rsp + 0x44]
mov rdx, qword [r13]
lea r8, [rsp + 0xe0]
mov rcx, rbx
lea r9d, [rax + 1]
call fcn.1401ff590
mov esi, eax
mov edi, eax
test eax, eax
jne 0x1401ffd2b
xor r15d, r15d
xor r14d, r14d
mov rdx, qword [r13 + 0x18]
mov ax, word [rdx + 2]
xchg al, ah
movzx eax, ax
cmp r14d, eax
jge 0x1401ffc8c
movzx eax, byte [rbx + 0x27]
mov r9d, dword [rsp + 0x44]
mov r8, r13
mov rcx, rbx
imul eax, r14d
add eax, 4
cdqe
mov rdx, qword [rdx + rax]
bswap rdx
mov qword [rsp + 0x50], rdx
call fcn.1402569a0
mov rdx, qword [rsp + 0x50]
mov edi, eax
mov rax, qword [rsp + 0x48]
cmp qword [rax], rdx
mov eax, 1
cmove r15d, eax
test edi, edi
jne 0x1401ffd2b
inc r14d
jmp 0x1401ffc2c
cmp qword [rbp + 8], 1
jne 0x1401ffcd2
mov rdx, qword [r12 + 0x18]
mov ax, word [rdx + 2]
xchg al, ah
movzx eax, ax
cmp esi, eax
jge 0x1401ffcd7
movzx eax, byte [rbx + 0x27]
mov r9d, dword [rsp + 0x44]
mov r8, r12
mov rcx, rbx
imul eax, esi
add eax, 4
cdqe
mov rdx, qword [rdx + rax]
bswap rdx
call fcn.1402569a0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
inc esi
jmp 0x1401ffc93
test r15d, r15d
je 0x1401ffd00
mov rdx, r13
mov rcx, rbx
xor r13d, r13d
call fcn.1401f1cd0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
mov rdx, r12
mov rcx, rbx
xor r13d, r13d
xor r12d, r12d
call fcn.1401f1cd0
mov edi, eax
jmp 0x1401ffd2b
mov rax, qword [rsp + 0x48]
mov r9d, dword [rsp + 0x44]
mov r8, r12
mov rcx, rbx
mov rdx, qword [rax]
call fcn.1402569a0
mov edi, eax
test eax, eax
jne 0x1401ffd2b
jmp 0x1401ffcd7
xor r13d, r13d
xor r12d, r12d
mov edi, 7
mov rdx, r13
mov rcx, rbx
call fcn.1401f1cd0
mov rcx, rbx
mov rdx, r12
call fcn.1401f1cd0
mov rcx, qword [rsp + 0x38]
jmp 0x1401ffff4
mov eax, dword [rsp + 0x44]
mov ecx, 0xa
mov dword [rbx + 0x68], eax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x50]
xor eax, eax
rep stosd dword [rdi], eax
mov edi, 7
mov r12w, word [rdx + 2]
rol r12w, 8
movzx r12d, r12w
lea esi, [r12 + 2]
lea eax, [r12 + 1]
and esi, 0x1fffe
mov dword [rsp + 0x38], eax
mov rcx, rsi
shl rcx, 6
call fcn.14024d6d0
mov r13, rax
test rax, rax
je 0x14020010b
imul r14, rsi, 0x30
shl rsi, 2
xor r11d, r11d
add r14, rax
lea rax, [r14 + rsi]
mov qword [rsp + 0x60], rax
add rax, rsi
mov qword [rsp + 0x58], rax
imul rax, r11, 0x30
mov r10d, r11d
mov r15, r13
add rax, r13
cmp r12d, r11d
jne 0x1401ffdee
mov rsi, qword [rsp + 0x48]
mov ecx, 0xc
mov rdi, rax
rep movsd dword [rdi], dword [rsi]
jmp 0x1401ffe19
mov dl, byte [rbx + 0x27]
mov cl, byte [rbx + 0x25]
mov qword [rsp + 0x20], rax
mov r9d, r11d
mov r8, qword [rbp + 0x18]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], r11d
call fcn.1401f1910
mov r10d, dword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov dword [r14 + r11*4], r10d
movzx r8d, byte [rbx + 0x24]
xor edx, edx
cmp r8d, edx
jle 0x1401ffe79
mov rsi, qword [rsp + 0x50]
cmp byte [rbx + 0x26], 0
mov r9d, dword [rax + rdx*8 + 8]
mov ecx, dword [rax + rdx*8 + 0xc]
movsd xmm0, qword [rsi + rdx*8]
jne 0x1401ffe59
movd xmm4, r9d
movd xmm5, ecx
cvtss2sd xmm1, xmm4
addsd xmm0, xmm1
cvtss2sd xmm1, xmm5
jmp 0x1401ffe66
cvtsi2sd xmm1, r9d
addsd xmm0, xmm1
cvtsi2sd xmm1, ecx
addsd xmm0, xmm1
mov rsi, qword [rsp + 0x50]
movsd qword [rsi + rdx*8], xmm0
inc rdx
jmp 0x1401ffe24
inc r11
lea eax, [r11 - 1]
cmp r12d, eax
jg 0x1401ffdcb
xor eax, eax
cmp r8d, eax
jle 0x1401ffeb5
cvtsi2sd xmm0, dword [rsp + 0x38]
lea rdx, [rsp + 0xe0]
movsd xmm1, qword [rdx + rax*8]
addsd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [rdx + rax*8], xmm1
inc rax
jmp 0x1401ffe8b
xor r9d, r9d
lea r10, [rsp + 0xe0]
xor edx, edx
xorps xmm2, xmm2
mov rax, qword [rsp + 0x58]
movsd qword [rax + r9*8], xmm2
cmp r8d, edx
jle 0x1401fff16
cmp byte [rbx + 0x26], 0
mov eax, dword [r15 + rdx*8 + 0xc]
mov ecx, dword [r15 + rdx*8 + 8]
jne 0x1401ffef7
movd xmm4, eax
movd xmm5, ecx
cvtss2sd xmm0, xmm4
cvtss2sd xmm1, xmm5
jmp 0x1401ffeff
cvtsi2sd xmm0, eax
cvtsi2sd xmm1, ecx
subsd xmm0, xmm1
subsd xmm0, qword [r10 + rdx*8]
inc rdx
mulsd xmm0, xmm0
addsd xmm2, xmm0
jmp 0x1401ffec5
inc r9
add r15, 0x30
lea eax, [r9 - 1]
cmp r12d, eax
jg 0x1401ffec0
mov edx, dword [rsp + 0x38]
mov r9, qword [rsp + 0x60]
mov rcx, r14
xor r15d, r15d
mov r8, qword [rsp + 0x58]
mov esi, 3
call fcn.1401ba320
mov eax, dword [rbx + 0x20]
lea ecx, [rax - 2]
mov rax, qword [rbp + 0x18]
movsxd rcx, ecx
lea rdx, [rax + 2]
xor eax, eax
mov rdi, rdx
rep stosb byte [rdi], al
mov dword [rbp + 0x14], 1
mov eax, dword [rbx + 0x20]
movzx ecx, byte [rbx + 0x27]
sub eax, 4
cdq
idiv ecx
cdq
idiv esi
mov edx, r12d
sub edx, eax
cmp edx, r15d
jle 0x1401fffd1
movsxd r8, dword [r14 + r15*4]
mov rdx, rbp
mov rcx, rbx
imul r8, r8, 0x30
add r8, r13
call fcn.1401f1990
mov rax, qword [rsp + 0x48]
mov rdx, qword [r8]
cmp rdx, qword [rax]
lea rax, [r15 + 1]
mov qword [rsp + 0x50], rax
jne 0x1401fffca
cmp dword [rsp + 0x44], 0
mov r8, qword [rbp + 8]
jne 0x1401fffbb
call fcn.1401fdae0
jmp 0x1401fffc0
call fcn.1401f4d40
mov edi, eax
test eax, eax
jne 0x140200103
mov r15, qword [rsp + 0x50]
jmp 0x1401fff63
mov rdx, rbp
mov rcx, rbx
call fcn.1401c86f0
mov edi, eax
movsxd r15, r15d
lea r12, [rsp + 0xb0]
test edi, edi
je 0x14020009f
mov rcx, r13
call fcn.14024c7d0
jmp 0x14020010b
mov r8, qword [rsp + 0x48]
mov rdx, rbp
call fcn.1401b9ee0
mov edi, eax
test eax, eax
jne 0x14020010b
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0x44], 0
mov rcx, rbx
mov r8, qword [rbp + 8]
mov rdx, qword [rax]
jne 0x140200065
movaps xmm6, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401fdae0
movaps xmm6, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401f4d40
cmp dword [rsp + 0x38], r15d
jle 0x1401ffff1
movsxd rsi, dword [r14 + r15*4]
mov r8d, dword [rsp + 0x44]
mov r9, r12
mov rcx, rbx
imul rsi, rsi, 0x30
add rsi, r13
mov rdx, rsi
call fcn.1401b9fe0
mov edi, eax
test eax, eax
jne 0x1402000fb
mov rbp, qword [rsp + 0xb0]
mov r9d, dword [rsp + 0x44]
mov r8, rsi
mov rcx, rbx
mov rdx, rbp
call fcn.1401ff590
mov rdx, rbp
mov rcx, rbx
mov edi, eax
call fcn.1401f1cd0
test edi, edi
cmove edi, eax
inc r15
jmp 0x1401fffe9
inc r15d
jmp 0x1401fffde
movaps xmm6, xmmword [rsp + 0x110]
mov eax, edi
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret