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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x250
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1401ef0c0]
xor rax, rsp
mov qword [rbp + 0xa8], rax
mov dword [rsp + 0x38], r9d
mov r15d, edx
mov dword [rsp + 0x50], edx
mov r13d, ecx
mov rsi, qword [rbp + 0x1a0]
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rsi
mov rdi, qword [rbp + 0x1a8]
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x10], xmm1
xor ecx, ecx
mov qword [rbp + 0x20], rcx
movabs rdx, 0xd684dce356998ba9
movabs r12, 0x1c6d998239bf85be
movss xmm14, dword [0x1401cb110]
movzx r14d, byte [rbp + 0x1b0]
test r14b, r14b
jne 0x14001724f
mov rax, qword [rdi + 0x70]
cmp dword [rax], 1
jne 0x14001724f
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], r14b
mov dword [rbp], 0xffffffff
mov dword [rbp + 5], 0xffffffff
mov dword [rbp - 0x30], ecx
movabs rax, 0xb7e6b4973af8eee1
mov qword [rsp + 0x40], rax
movabs rax, 0x1c6d998239bf85cc
mov qword [rsp + 0x48], rax
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], r12
movdqa xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [rbp + 0x70]
movdqa xmmword [rsp + 0x40], xmm0
lea rax, [rsp + 0x40]
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x140017140
lea rcx, [rbp - 0x28]
cmp rbx, 0xf
ja 0x14001716b
mov qword [rbp - 0x18], rbx
mov r8, rbx
lea rdx, [rsp + 0x40]
call fcn.14018f070
mov byte [rbp + rbx - 0x28], 0
jmp 0x140017178
lea r9, [rsp + 0x40]
mov rdx, rbx
call fcn.1400092a0
movss xmm1, dword [rsi + 0x144]
movss dword [rbp - 8], xmm1
movss xmm0, dword [rsi + 0x148]
movss dword [rbp - 4], xmm0
mulss xmm1, dword [0x1401cb10c]
divss xmm1, xmm0
comiss xmm1, xmm14
jbe 0x1400171a8
movaps xmm1, xmm14
mov byte [rsp + 0x30], 0x96
cvttss2si eax, xmm1
mov byte [rsp + 0x31], al
mov word [rsp + 0x32], 0xc800
mov eax, dword [rsp + 0x30]
mov dword [rbp], eax
mov rax, qword [rdi + 0x78]
movzx ecx, byte [rax]
mov byte [rbp + 4], cl
mov rax, qword [rdi + 0x80]
mov ecx, dword [rax]
mov dword [rbp + 5], ecx
mov rbx, qword [rbp + 0x18]
cmp rbx, qword [rbp + 0x20]
je 0x140017229
mov eax, dword [rbp - 0x30]
mov dword [rbx], eax
lea rcx, [rbx + 8]
lea rdx, [rbp - 0x28]
call fcn.140008b60
movss xmm0, dword [rbp - 8]
movss dword [rbx + 0x28], xmm0
movss xmm1, dword [rbp - 4]
movss dword [rbx + 0x2c], xmm1
mov eax, dword [rbp]
mov dword [rbx + 0x30], eax
movzx eax, byte [rbp + 4]
mov byte [rbx + 0x34], al
mov eax, dword [rbp + 5]
mov dword [rbx + 0x35], eax
mov eax, dword [rbp + 0xc]
mov dword [rbx + 0x3c], eax
add qword [rbp + 0x18], 0x40
jmp 0x14001723a
lea r8, [rbp - 0x30]
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.14001a330
nop
lea rcx, [rbp - 0x28]
call fcn.140008e00
xor ecx, ecx
movabs rdx, 0xd684dce356998ba9
movss xmm0, dword [rsi + 0x140]
xorps xmm15, xmm15
comiss xmm0, xmm15
jbe 0x1400173a9
test r14b, r14b
jne 0x1400173a9
mov rax, qword [rdi + 0x88]
cmp dword [rax], 1
jne 0x1400173a9
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], r14b
mov dword [rbp], 0xffffffff
mov dword [rbp + 5], 0xffffffff
mov dword [rbp - 0x30], ecx
movabs rax, 0xa4e5be9139f4f9e8
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r12
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], r12
movdqa xmm0, xmmword [rsp + 0x40]
xorps xmm0, xmmword [rbp + 0x70]
movdqa xmmword [rsp + 0x40], xmm0
lea rax, [rsp + 0x40]
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x1400172e0
lea rcx, [rbp - 0x28]
cmp rbx, 0xf
ja 0x14001730b
mov qword [rbp - 0x18], rbx
mov r8, rbx
lea rdx, [rsp + 0x40]
call fcn.14018f070
mov byte [rbp + rbx - 0x28], 0
jmp 0x140017318
lea r9, [rsp + 0x40]
mov rdx, rbx
call fcn.1400092a0
movss xmm0, dword [rsi + 0x140]
movss dword [rbp - 8], xmm0
mov dword [rbp - 4], 0x42c80000
mov dword [rsp + 0x30], 0xffd57c44
mov eax, dword [rsp + 0x30]
mov dword [rbp], eax
mov byte [rbp + 4], 0
mov rbx, qword [rbp + 0x18]
cmp rbx, qword [rbp + 0x20]
je 0x14001738f
mov eax, dword [rbp - 0x30]
mov dword [rbx], eax
lea rcx, [rbx + 8]
lea rdx, [rbp - 0x28]
call fcn.140008b60
movss xmm0, dword [rbp - 8]
movss dword [rbx + 0x28], xmm0
movss xmm1, dword [rbp - 4]
movss dword [rbx + 0x2c], xmm1
mov eax, dword [rbp]
mov dword [rbx + 0x30], eax
movzx eax, byte [rbp + 4]
mov byte [rbx + 0x34], al
mov eax, dword [rbp + 5]
mov dword [rbx + 0x35], eax
mov eax, dword [rbp + 0xc]
mov dword [rbx + 0x3c], eax
add qword [rbp + 0x18], 0x40
jmp 0x1400173a0
lea r8, [rbp - 0x30]
mov rdx, rbx
lea rcx, [rbp + 0x10]
call fcn.14001a330
nop
lea rcx, [rbp - 0x28]
call fcn.140008e00
mov r12, qword [rbp + 0x18]
mov rbx, qword [rbp + 0x10]
cmp rbx, r12
je 0x14001783a
mov dword [rsp + 0x30], r15d
lea r15, [rbx + 0x28]
add r13d, 0xfffffffa
movss xmm11, dword [rbp + 0x1b8]
movss xmm13, dword [0x1401caf5c]
nop dword [rax]
mov eax, dword [r15 - 0x28]
mov dword [rbp + 0x30], eax
lea rdx, [r15 - 0x20]
lea rcx, [rbp + 0x38]
call fcn.140008b60
movss xmm10, dword [r15]
movss dword [rbp + 0x58], xmm10
movss xmm9, dword [r15 + 4]
movss dword [rbp + 0x5c], xmm9
mov esi, dword [r15 + 8]
mov dword [rbp + 0x60], esi
mov eax, esi
shr eax, 8
mov dword [rsp + 0x68], eax
mov eax, esi
shr eax, 0x10
mov dword [rsp + 0x58], eax
mov eax, esi
shr eax, 0x18
mov dword [rsp + 0x54], eax
movzx eax, byte [r15 + 0xc]
mov byte [rsp + 0x34], al
mov byte [rbp + 0x64], al
mov edi, dword [r15 + 0xd]
mov dword [rbp + 0x65], edi
mov eax, edi
shr eax, 8
mov dword [rsp + 0x60], eax
mov eax, edi
shr eax, 0x10
mov dword [rsp + 0x5c], eax
mov r14d, edi
shr r14d, 0x18
mov eax, dword [r15 + 0x14]
mov dword [rbp + 0x6c], eax
cmp dword [rbp + 0x30], 0
jne 0x140017770
mov eax, dword [rsp + 0x38]
inc eax
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mulss xmm8, xmm10
divss xmm8, xmm9
movaps xmm0, xmm11
mulss xmm0, dword [0x1401cb100]
cvttss2si ebx, xmm0
lea eax, [r13 - 1]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [rsp + 0x50]
dec eax
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov rax, qword [0x1402718d8]
mov rax, qword [rax + 0x48b8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400561d0
mov r10, rax
movzx ecx, bl
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm14
mov qword [rbp - 0x60], 0
mov dword [rbp - 0x58], 0
movss dword [rbp - 0x54], xmm0
lea rcx, [rbp - 0x60]
call fcn.140053cc0
mov ecx, dword [rsp + 0x38]
add ecx, 3
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
addss xmm1, xmm6
movaps xmm0, xmm7
addss xmm0, dword [0x1401cafa0]
movss dword [rsp + 0x70], xmm0
movss dword [rsp + 0x74], xmm1
movss dword [rsp + 0x78], xmm7
movss dword [rsp + 0x7c], xmm6
mov dword [rsp + 0x28], 0
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x78]
mov rcx, r10
call fcn.140073900
movd xmm0, dword [rsp + 0x54]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
cvttss2si ebx, xmm0
movd xmm12, r13d
cvtdq2ps xmm12, xmm12
movd xmm7, dword [rsp + 0x38]
cvtdq2ps xmm7, xmm7
subss xmm7, xmm8
movd xmm0, dword [rsp + 0x50]
cvtdq2ps xmm0, xmm0
addss xmm7, xmm0
movaps xmm6, xmm7
addss xmm6, dword [0x1401caf0c]
mov rax, qword [0x1402718d8]
mov rax, qword [rax + 0x48b8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.1400561d0
mov r10, rax
movzx ecx, bl
movd xmm3, ecx
cvtdq2ps xmm3, xmm3
divss xmm3, xmm14
movzx ecx, byte [rsp + 0x58]
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
divss xmm2, xmm14
movzx ecx, byte [rsp + 0x68]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
divss xmm1, xmm14
movzx ecx, sil
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm14
movss dword [rbp - 0x50], xmm0
movss dword [rbp - 0x4c], xmm1
movss dword [rbp - 0x48], xmm2
movss dword [rbp - 0x44], xmm3
lea rcx, [rbp - 0x50]
call fcn.140053cc0
movaps xmm1, xmm6
addss xmm1, xmm8
movaps xmm0, xmm12
addss xmm0, xmm13
movss dword [rbp - 0x80], xmm0
movss dword [rbp - 0x7c], xmm1
movss dword [rbp - 0x78], xmm12
movss dword [rbp - 0x74], xmm6
xor esi, esi
mov dword [rsp + 0x28], esi
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x78]
mov rcx, r10
call fcn.140073900
cmp byte [rsp + 0x34], sil
je 0x140017767
subss xmm9, xmm13
comiss xmm9, xmm10
jbe 0x140017767
movabs rax, 0xd684dce35699ef8c
mov qword [rbp + 0x70], rax
movabs rax, 0x1c6d998239bf85be
mov qword [rbp + 0x78], rax
movabs rcx, 0xd684dce356998ba9
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rax
movdqa xmm0, xmmword [rbp + 0x70]
xorps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x70], xmm0
cvttss2si r8d, xmm10
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x90]
call fcn.140016740
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
cvttss2si ebx, xmm0
movss dword [rbp - 0x70], xmm12
movss dword [rbp - 0x6c], xmm7
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], rsi
lea rax, [rbp + 0x90]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], sil
jne 0x140017710
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x30]
call fcn.140009150
movzx r8d, bl
shl r8d, 8
movzx eax, byte [rsp + 0x5c]
or r8d, eax
shl r8d, 8
movzx eax, byte [rsp + 0x60]
or r8d, eax
shl r8d, 8
movzx eax, dil
or r8d, eax
mov dword [rsp + 0x20], esi
mov r9d, 0xe
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x30]
call fcn.140082420
sub r13d, 6
jmp 0x140017814
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x30]
call fcn.140008b60
mov r8d, dword [rbp + 0x6c]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140082310
movzx eax, byte [rbp + 0x63]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm11
cvttss2si ebx, xmm0
movzx edi, byte [rbp + 0x62]
movzx esi, byte [rbp + 0x61]
movzx r14d, byte [rbp + 0x60]
movd xmm0, r13d
cvtdq2ps xmm0, xmm0
subss xmm0, dword [rsp + 0x40]
movss dword [rbp - 0x68], xmm0
movd xmm0, dword [rsp + 0x30]
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x64], xmm0
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x30]
call fcn.140008b60
movzx r8d, bl
shl r8d, 8
or r8d, edi
shl r8d, 8
or r8d, esi
shl r8d, 8
or r8d, r14d
mov ecx, dword [rbp + 0x6c]
mov dword [rsp + 0x20], ecx
mov r9d, 8
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140082420
add dword [rsp + 0x30], 0xc
lea rcx, [rbp + 0x38]
call fcn.140008e00
add r15, 0x40
lea rax, [r15 - 0x28]
cmp rax, r12
jne 0x1400173e0
mov r12, qword [rbp + 0x18]
mov rbx, qword [rbp + 0x10]
mov rsi, qword [rbp - 0x40]
test rbx, rbx
je 0x1400178a2
cmp rbx, r12
je 0x14001785a
lea rcx, [rbx + 8]
call fcn.140008e00
add rbx, 0x40
cmp rbx, r12
jne 0x140017844
mov rbx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x20]
sub rdx, rbx
and rdx, 0xffffffffffffffc0
mov rax, rbx
cmp rdx, 0x1000
jb 0x14001788a
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017916
mov rcx, rbx
call fcn.14015dacc
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], 0
lea rcx, [rsi + 0x158]
call fcn.140008e00
mov rcx, qword [rbp + 0xa8]
xor rcx, rsp
call fcn.14015d760
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140164ab0
nop
int3