Function at 0x180041830
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
lea rbp, [rsp - 0x188]
sub rsp, 0x288
mov rax, qword [0x180056010]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rdx, qword [rcx + 0xda0]
mov rsi, rcx
test rdx, rdx
jne 0x180041869
xor al, al
jmp 0x180042943
mov qword [rsp + 0x2b8], r12
lea r8, [rsp + 0x60]
mov qword [rsp + 0x280], r13
xorps xmm0, xmm0
mov qword [rsp + 0x270], r15
add rdx, 0x900
movaps xmmword [rsp + 0x260], xmm6
mov r9d, 0x80
movaps xmmword [rsp + 0x250], xmm7
movaps xmmword [rsp + 0x240], xmm8
movaps xmmword [rsp + 0x230], xmm9
movaps xmmword [rsp + 0x220], xmm10
movaps xmmword [rsp + 0x210], xmm11
movaps xmmword [rsp + 0x200], xmm12
movaps xmmword [rsp + 0x1f0], xmm13
movaps xmmword [rsp + 0x1e0], xmm14
movaps xmmword [rsp + 0x1d0], xmm15
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
call fcn.1800448a0
mov rdx, qword [rsi + 0xda0]
lea r8, [rbp - 0x18]
movups xmm9, xmmword [rbp - 0x60]
add rdx, 0x700
mov r9d, 8
movups xmm8, xmmword [rbp - 0x50]
movups xmm6, xmmword [rbp - 0x40]
movups xmm7, xmmword [rbp - 0x30]
movups xmm10, xmmword [rsp + 0x60]
movups xmm11, xmmword [rsp + 0x70]
movups xmm12, xmmword [rbp - 0x80]
movups xmm13, xmmword [rbp - 0x70]
xorps xmm14, xmm14
movups xmmword [rbp + 0x40], xmm9
movups xmmword [rbp + 0x50], xmm8
movups xmmword [rbp + 0x60], xmm6
movups xmmword [rbp + 0x70], xmm7
movsd qword [rbp - 0x18], xmm14
call fcn.1800448a0
xorps xmm0, xmm0
movsd qword [rsi + 0x4d0], xmm6
unpckhpd xmm6, xmm6
cvtsd2ss xmm0, xmm8
movsd qword [rsi + 0x4d8], xmm6
movsd qword [rsi + 0x4e0], xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_asinf
movsd xmm15, qword [0x18004ea68]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
xorps xmm6, xmm6
movaps xmm7, xmm9
mulsd xmm1, xmm15
xorps xmm0, xmm0
cvtsd2ss xmm6, xmm9
divsd xmm1, qword [0x18004ea10]
unpckhpd xmm7, xmm9
movsd qword [rsi + 0x4e8], xmm1
movaps xmm1, xmm6
cvtsd2ss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
xorps xmm2, xmm2
movaps xmm1, xmm6
cvtss2sd xmm2, xmm0
xorps xmm0, xmm0
mulsd xmm2, xmm15
cvtsd2ss xmm0, xmm11
divsd xmm2, qword [0x18004ea10]
movsd qword [rsi + 0x4f0], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movsd xmm2, qword [0x18004e9f8]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, xmm15
divsd xmm1, qword [0x18004ea10]
movsd qword [rsi + 0x4f8], xmm1
divsd xmm2, qword [rbp - 0x18]
movsd xmm0, qword [0x1800a3790]
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [rsi + 0xda8], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_atanf
xorps xmm1, xmm1
addss xmm0, xmm0
xor r13d, r13d
cvtss2sd xmm1, xmm0
mulsd xmm1, xmm15
divsd xmm1, qword [0x18004ea10]
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm12
movss dword [rsi + 0x500], xmm0
movaps xmm0, xmm10
movsd qword [rsi + 0xd58], xmm9
movsd qword [rsi + 0xd60], xmm7
movsd qword [rsi + 0xd68], xmm8
movsd qword [rsi + 0xd70], xmm10
unpckhpd xmm0, xmm10
movsd qword [rsi + 0xd78], xmm0
movsd qword [rsi + 0xd80], xmm11
movsd qword [rsi + 0xd88], xmm12
unpckhpd xmm1, xmm12
movsd qword [rsi + 0xd90], xmm1
movsd qword [rsi + 0xd98], xmm13
cmp qword [rsi + 0xcc8], r13
je 0x180041b71
lea rcx, [rsi + 0x50]
call fcn.18003bb90
cmp byte [0x1800a21ac], r13b
je 0x180041b71
mov rdx, qword [rsi + 0x48]
test rdx, rdx
je 0x180041b3d
add rdx, 0x9f8
mov qword [rbp - 0x18], r13
lea r9d, [r13 + 8]
lea r8, [rbp - 0x18]
call fcn.1800448a0
mov rax, qword [rbp - 0x18]
mov qword [rsi + 0x280], rax
mov qword [rsi + 0x288], rax
mov qword [rsi + 0x290], rax
mov qword [rsi + 0x298], rax
cmp qword [rsi + 0x298], r13
je 0x180041b71
mov rdx, qword [rsi + 0x290]
lea r8, [rbp - 0x20]
add rdx, 0x1150
mov byte [rbp - 0x20], r13b
mov r9d, 1
call fcn.1800448a0
movzx eax, byte [rbp - 0x20]
mov byte [rsi + 0x100], al
movss xmm9, dword [0x18004eb90]
mov dword [0x1800a2fd8], 0x7f7fffff
movups xmmword [0x1800a2fc8], xmm14
mov qword [0x1800a2fa8], r13
movups xmmword [0x1800a2fb8], xmm14
mov r15, qword [rsi + 0x4b0]
mov r12, qword [rsi + 0x4b8]
mov qword [rsp + 0x2a8], rbx
cmp r15, r12
je 0x1800425ae
movsd xmm6, qword [0x18004ea18]
movsd xmm15, qword [0x18004ea38]
movsd xmm7, qword [0x18004ea48]
movsd xmm8, qword [0x18004ea20]
movss xmm10, dword [0x18004e948]
movss xmm12, dword [0x18004e968]
movsd xmm13, qword [0x18004ea30]
movsd xmm11, qword [0x18004ea60]
mov qword [rsp + 0x2b0], rdi
mov edi, 0x1001001
mov qword [rsp + 0x278], r14
nop word [rax + rax]
mov rbx, qword [r15]
mov rdx, qword [rbx + 0x28]
test rdx, rdx
je 0x180042588
add rdx, 0x750
mov byte [rbp - 0x20], r13b
mov r9d, 1
lea r8, [rbp - 0x20]
call fcn.1800448a0
movzx eax, byte [rbp - 0x20]
sub al, 0x30
cmp al, 0x18
ja 0x180041c68
movzx eax, al
bt edi, eax
jae 0x180041c68
mov byte [rbx + 0xe1], 1
jmp 0x180042588
mov rcx, rbx
mov byte [rbx + 0xe1], r13b
call fcn.180040a30
cmp byte [rbx + 0xe8], r13b
jne 0x180042588
lea rcx, [rbx + 0x30]
call fcn.18003bb90
movsd xmm0, qword [rbx + 0x40]
lea r9, [rbp]
movsd xmm2, qword [rbx + 0x88]
addsd xmm0, xmm6
movsd xmm5, qword [rbx + 0x30]
addsd xmm2, xmm8
movsd xmm4, qword [rbx + 0x38]
subsd xmm5, xmm15
movsd xmm3, qword [rbx + 0x78]
subsd xmm4, xmm7
mov rcx, qword [rbx + 0x100]
addsd xmm3, xmm15
movaps xmm1, xmm0
mov r10, r13
subsd xmm2, qword [0x18004ea08]
addsd xmm1, xmm8
movsd qword [rbp], xmm5
subsd xmm0, xmm6
movsd qword [rbp + 8], xmm4
movsd qword [rbp + 0x18], xmm5
movaps xmm6, xmm9
movsd qword [rbp + 0x30], xmm3
movaps xmm8, xmm10
movsd qword [rbp + 0x48], xmm3
movsd qword [rbp + 0x10], xmm1
movsd qword [rbx + 0x40], xmm0
movsd xmm0, qword [rbx + 0x80]
addsd xmm0, xmm7
movsd qword [rbp + 0x28], xmm1
movsd qword [rbp + 0x40], xmm1
movaps xmm7, xmm10
movsd qword [rbp + 0x50], xmm4
movsd qword [rbp + 0x58], xmm1
movsd qword [rbp + 0x60], xmm3
movsd qword [rbp + 0x20], xmm0
movsd qword [rbp + 0x38], xmm0
movsd qword [rbp + 0x68], xmm0
movsd qword [rbp + 0x80], xmm0
movsd qword [rbp + 0x70], xmm2
movsd qword [rbp + 0x78], xmm5
movsd qword [rbp + 0x88], xmm2
movsd qword [rbp + 0x90], xmm5
movsd qword [rbp + 0x98], xmm4
movsd qword [rbp + 0xa0], xmm2
movsd qword [rbp + 0xa8], xmm3
movsd qword [rbp + 0xb0], xmm4
movsd qword [rbp + 0xb8], xmm2
nop
movups xmm0, xmmword [r9]
lea r8, [rsp + 0x20]
movsd xmm1, qword [r9 + 0x10]
lea rdx, [rsp + 0x40]
movaps xmmword [rsp + 0x20], xmm0
movsd qword [rsp + 0x30], xmm1
call fcn.180042960
movsd xmm3, qword [rsp + 0x40]
ucomisd xmm3, xmm14
movsd xmm2, qword [rsp + 0x48]
jp 0x180041dd6
jne 0x180041dd6
ucomisd xmm2, xmm14
jp 0x180041dd6
je 0x180041e82
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm0, xmm6
inc r10
add r9, 0x18
cvtss2sd xmm1, xmm7
minsd xmm0, xmm3
maxsd xmm1, xmm2
cvtpd2ps xmm6, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm7, xmm1
xorps xmm1, xmm1
cvtss2sd xmm0, xmm8
cvtss2sd xmm1, xmm9
maxsd xmm0, xmm3
minsd xmm1, xmm2
cvtpd2ps xmm8, xmm0
cvtpd2ps xmm9, xmm1
cmp r10, 8
jl 0x180041d90
cvttss2si eax, xmm6
cvttss2si ecx, xmm8
mov dword [rbx + 0xec], eax
cvttss2si edx, xmm9
mov dword [rbx + 0xf0], ecx
cvttss2si r8d, xmm7
mov dword [rbx + 0xf4], edx
mov eax, 0xc
mov dword [rbx + rax + 0xec], r8d
cmp byte [0x1800a21c9], r13b
jne 0x180041e95
cmp byte [0x1800a37af], r13b
jne 0x180041e95
movsd xmm8, qword [0x1800a3798]
movsd xmm9, qword [0x1800a3790]
jmp 0x18004220e
mov qword [rbx + 0xec], r13
mov r8d, r13d
mov dword [rbx + 0xf4], r13d
jmp 0x180041e4c
mov rdx, qword [rbx + 0x160]
lea r8, [rbp - 0x18]
add rdx, 0x368
mov dword [rbp - 0x18], r13d
mov r9d, 4
call fcn.1800448a0
mov rdx, qword [rbx + 0x160]
lea r8, [rbp - 0x10]
add rdx, 0x370
mov dword [rbp - 0x10], r13d
mov r9d, 4
call fcn.1800448a0
movss xmm0, dword [rbp - 0x10]
addss xmm0, xmm12
comiss xmm0, dword [rbp - 0x18]
setae al
mov byte [rbx + 0xe2], al
cmp byte [0x1800a21d4], r13b
je 0x180041eff
test al, al
je 0x180041e6b
cmp byte [0x1800a37ae], r13b
mov edi, r13d
movsd xmm8, qword [0x1800a3798]
movsd xmm9, qword [0x1800a3790]
jne 0x180041fa2
mov ecx, dword [0x1800a37b0]
test ecx, ecx
je 0x180041f84
sub ecx, 1
je 0x180041f66
cmp ecx, 1
jne 0x180041f51
movsd xmm0, qword [rbx + 0xb0]
lea edi, [rcx + 6]
movsd xmm1, qword [rbx + 0xb8]
cvtpd2ps xmm0, xmm0
jmp 0x1800420ef
movsd xmm7, qword [0x1800a37e8]
movsd xmm6, qword [0x1800a37e0]
jmp 0x180042109
movsd xmm0, qword [rbx + 0xa0]
mov edi, 0x43
movsd xmm1, qword [rbx + 0xa8]
cvtpd2ps xmm0, xmm0
jmp 0x1800420ef
movsd xmm0, qword [rbx + 0x90]
mov edi, 0x6d
movsd xmm1, qword [rbx + 0x98]
cvtpd2ps xmm0, xmm0
jmp 0x1800420ef
movsd xmm12, qword [rbx + 0x90]
movaps xmm0, xmm9
movaps xmm1, xmm8
subsd xmm0, xmm12
subsd xmm1, qword [rbx + 0x98]
cvtpd2ps xmm2, xmm0
cvtpd2ps xmm3, xmm1
mulss xmm2, xmm2
xorps xmm0, xmm0
mulss xmm3, xmm3
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x180041fe5
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x180041fed
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movsd xmm11, qword [rbx + 0xa0]
movaps xmm1, xmm8
subsd xmm1, qword [rbx + 0xa8]
xorps xmm6, xmm6
cvtss2sd xmm6, xmm0
movaps xmm0, xmm9
subsd xmm0, xmm11
cvtpd2ps xmm3, xmm1
cvtpd2ps xmm2, xmm0
mulss xmm3, xmm3
xorps xmm0, xmm0
mulss xmm2, xmm2
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x180042037
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x18004203f
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movsd xmm10, qword [rbx + 0xb0]
movaps xmm1, xmm8
subsd xmm1, qword [rbx + 0xb8]
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
movaps xmm0, xmm9
subsd xmm0, xmm10
cvtpd2ps xmm3, xmm1
cvtpd2ps xmm2, xmm0
mulss xmm3, xmm3
xorps xmm0, xmm0
mulss xmm2, xmm2
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x180042089
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x180042091
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvtss2sd xmm0, xmm0
movaps xmm1, xmm7
minsd xmm1, xmm0
comisd xmm1, xmm6
jbe 0x1800420a5
movaps xmm1, xmm6
ucomisd xmm1, xmm6
jp 0x1800420c1
jne 0x1800420c1
movsd xmm1, qword [rbx + 0x98]
mov edi, 0x6d
cvtpd2ps xmm0, xmm12
jmp 0x1800420ef
ucomisd xmm1, xmm7
jp 0x1800420dd
jne 0x1800420dd
movsd xmm1, qword [rbx + 0xa8]
mov edi, 0x43
cvtpd2ps xmm0, xmm11
jmp 0x1800420ef
movsd xmm1, qword [rbx + 0xb8]
mov edi, 7
cvtpd2ps xmm0, xmm10
cvtpd2ps xmm1, xmm1
cvtps2pd xmm6, xmm0
cvtps2pd xmm7, xmm1
movsd qword [0x1800a37e0], xmm6
movsd qword [0x1800a37e8], xmm7
movaps xmm0, xmm9
movaps xmm1, xmm8
subsd xmm0, qword [rbx + 0xc0]
subsd xmm1, qword [rbx + 0xc8]
mov ecx, 0x90
mov rax, rbx
cvtpd2ps xmm10, xmm0
movaps xmm0, xmm9
subsd xmm0, qword [rbx + rcx]
cvtpd2ps xmm12, xmm1
movaps xmm1, xmm8
subsd xmm1, qword [rbx + rcx + 8]
cvtpd2ps xmm2, xmm0
cvtpd2ps xmm3, xmm1
mulss xmm2, xmm2
xorps xmm0, xmm0
mulss xmm3, xmm3
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x18004216d
xorps xmm11, xmm11
sqrtss xmm11, xmm3
jmp 0x180042179
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm11, xmm0
mulss xmm10, xmm10
xorps xmm1, xmm1
mulss xmm12, xmm12
addss xmm10, xmm12
ucomiss xmm1, xmm10
ja 0x18004219b
xorps xmm0, xmm0
sqrtss xmm0, xmm10
jmp 0x1800421a4
movaps xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm10, dword [0x18004e948]
minss xmm11, xmm0
movd xmm0, dword [0x1800a21c0]
movss xmm12, dword [0x18004e968]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm11
jbe 0x180042200
movss xmm0, dword [0x1800a2fd8]
comiss xmm0, xmm11
jbe 0x180042200
movsd qword [0x1800a2fb8], xmm6
movsd qword [0x1800a2fc0], xmm7
movss dword [0x1800a2fd8], xmm11
mov qword [0x1800a2fa8], rbx
mov dword [0x1800a2fb0], edi
movsd xmm11, qword [0x18004ea60]
mov edi, 0x1001001
cmp byte [0x1800a21ac], r13b
je 0x180042566
cmp byte [0x1800a37a2], r13b
je 0x180042237
movzx eax, byte [rsi + 0x100]
cmp al, 2
je 0x180042237
cmp al, 0xb
jne 0x180042566
cmp byte [0x1800a37a0], r13b
jne 0x1800422f4
mov ecx, dword [0x1800a37a4]
test ecx, ecx
je 0x1800422ca
sub ecx, 1
je 0x1800422a0
cmp ecx, 1
jne 0x180042282
movsd xmm0, qword [rbx + 0x60]
movsd xmm1, qword [rbx + 0x68]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
cvtps2pd xmm7, xmm0
movsd xmm0, qword [rbx + 0x70]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm6, xmm1
cvtps2pd xmm8, xmm0
jmp 0x180042425
movsd xmm8, qword [0x1800a37d8]
movsd xmm6, qword [0x1800a37d0]
movsd xmm7, qword [0x1800a37c8]
jmp 0x18004243e
movsd xmm0, qword [rbx + 0x48]
movsd xmm1, qword [rbx + 0x50]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
cvtps2pd xmm7, xmm0
movsd xmm0, qword [rbx + 0x58]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm6, xmm1
cvtps2pd xmm8, xmm0
jmp 0x180042425
movsd xmm0, qword [rbx + 0x30]
movsd xmm1, qword [rbx + 0x38]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
cvtps2pd xmm7, xmm0
movsd xmm0, qword [rbx + 0x40]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm6, xmm1
cvtps2pd xmm8, xmm0
jmp 0x180042425
movaps xmm0, xmm9
movaps xmm1, xmm8
subsd xmm0, qword [rbx + 0x90]
subsd xmm1, qword [rbx + 0x98]
cvtpd2ps xmm2, xmm0
cvtpd2ps xmm3, xmm1
mulss xmm2, xmm2
xorps xmm0, xmm0
mulss xmm3, xmm3
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x180042331
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x180042339
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm8
xorps xmm6, xmm6
subsd xmm1, qword [rbx + 0xa8]
cvtss2sd xmm6, xmm0
movaps xmm0, xmm9
subsd xmm0, qword [rbx + 0xa0]
cvtpd2ps xmm3, xmm1
cvtpd2ps xmm2, xmm0
mulss xmm3, xmm3
xorps xmm0, xmm0
mulss xmm2, xmm2
addss xmm3, xmm2
ucomiss xmm0, xmm3
ja 0x18004237d
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x180042385
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
subsd xmm9, qword [rbx + 0xb0]
subsd xmm8, qword [rbx + 0xb8]
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
cvtpd2ps xmm0, xmm9
cvtpd2ps xmm1, xmm8
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1800423c5
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1800423cd
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvtss2sd xmm0, xmm0
movaps xmm1, xmm7
minsd xmm1, xmm0
comisd xmm1, xmm6
jbe 0x1800423e1
movaps xmm1, xmm6
ucomisd xmm1, xmm6
jp 0x1800423fb
jne 0x1800423fb
movsd xmm7, qword [rbx + 0x30]
movsd xmm6, qword [rbx + 0x38]
movsd xmm8, qword [rbx + 0x40]
jmp 0x180042425
ucomisd xmm1, xmm7
jp 0x180042415
jne 0x180042415
movsd xmm7, qword [rbx + 0x48]
movsd xmm6, qword [rbx + 0x50]
movsd xmm8, qword [rbx + 0x58]
jmp 0x180042425
movsd xmm7, qword [rbx + 0x60]
movsd xmm6, qword [rbx + 0x68]
movsd xmm8, qword [rbx + 0x70]
movsd qword [0x1800a37d8], xmm8
movsd qword [0x1800a37d0], xmm6
movsd qword [0x1800a37c8], xmm7
mov rdx, qword [rsi + 0xcb0]
lea r8, [rsp + 0x20]
xor eax, eax
xorps xmm0, xmm0
add rdx, 0x26b0
mov qword [rsp + 0x30], rax
movups xmmword [rsp + 0x20], xmm0
lea r9d, [rax + 0x18]
call fcn.1800448a0
movsd xmm1, qword [rsp + 0x20]
movaps xmm0, xmm7
subsd xmm0, xmm13
comisd xmm1, xmm0
jb 0x180042566
addsd xmm7, xmm13
comisd xmm7, xmm1
jb 0x180042566
movsd xmm1, qword [rsp + 0x28]
movaps xmm0, xmm6
subsd xmm0, xmm13
comisd xmm1, xmm0
jb 0x180042566
addsd xmm6, xmm13
comisd xmm6, xmm1
jb 0x180042566
movsd xmm1, qword [rsp + 0x30]
movaps xmm0, xmm8
subsd xmm0, xmm15
comisd xmm1, xmm0
jb 0x180042566
addsd xmm8, xmm15
comisd xmm8, xmm1
jb 0x180042566
movsd xmm0, qword [rbx + 0x40]
subsd xmm0, qword [rsi + 0x60]
movsd xmm1, qword [rbx + 0x30]
movsd xmm2, qword [rbx + 0x38]
subsd xmm2, qword [rsi + 0x58]
subsd xmm1, qword [rsi + 0x50]
mulsd xmm0, xmm0
mulsd xmm2, xmm2
mulsd xmm1, xmm1
addsd xmm2, xmm1
addsd xmm2, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm2
ja 0x180042521
sqrtpd xmm0, xmm2
jmp 0x180042529
movaps xmm0, xmm2
call fcn.18004683c
divsd xmm0, xmm11
cvttsd2si eax, xmm0
cmp eax, 0x14
jg 0x180042566
cmp byte [0x1800a21a0], r13b
je 0x180042551
mov ecx, dword [0x1800a21a8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18004255a
cmp byte [0x1800a37a1], r13b
je 0x180042566
lea rcx, [0x1800a2fa0]
call fcn.18003f780
movss xmm9, dword [0x18004eb90]
movsd xmm6, qword [0x18004ea18]
movsd xmm7, qword [0x18004ea48]
movsd xmm8, qword [0x18004ea20]
add r15, 8
cmp r15, r12
jne 0x180041c20
mov r14, qword [rsp + 0x278]
mov rdi, qword [rsp + 0x2b0]
movsd xmm15, qword [0x18004ea68]
cmp byte [0x1800a37af], 0
movups xmm0, xmmword [0x1800a2fb8]
mov r15, qword [rsp + 0x270]
movaps xmm13, xmmword [rsp + 0x1f0]
movaps xmm12, xmmword [rsp + 0x200]
movaps xmm11, xmmword [rsp + 0x210]
movaps xmm10, xmmword [rsp + 0x220]
mov r13, qword [rsp + 0x280]
mov r12, qword [rsp + 0x2b8]
movups xmmword [0x1800a2fc8], xmm0
je 0x180042905
cmp qword [0x1800a2fa8], 0
je 0x180042905
mov ecx, dword [0x1800a21c4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180042905
mov rdx, qword [0x1800a2fa8]
test rdx, rdx
jne 0x180042649
xorps xmm7, xmm7
xorps xmm8, xmm8
unpckhpd xmm8, xmm7
movaps xmm6, xmm14
jmp 0x1800426fe
mov r8, qword [rdx + 0x180]
test r8, r8
jne 0x18004266f
xorps xmm1, xmm1
xorps xmm0, xmm0
unpckhpd xmm0, xmm1
movaps xmm6, xmm14
movaps xmm8, xmm0
xorps xmm7, xmm7
jmp 0x1800426fe
movsxd rax, dword [0x1800a2fb0]
xorps xmm6, xmm6
movaps xmm0, xmmword [0x18004ed80]
mulps xmm0, xmmword [rdx + 0x220]
lea rcx, [rax + rax*2]
shl rcx, 5
movsd xmm2, qword [rcx + r8 + 0x30]
movsd xmm1, qword [rcx + r8 + 0x28]
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm1, xmm1
shufps xmm2, xmm2, 0
mulps xmm2, xmmword [rdx + 0x210]
shufps xmm1, xmm1, 0
mulps xmm1, xmmword [rdx + 0x200]
addps xmm2, xmm0
movsd xmm0, qword [rcx + r8 + 0x20]
cvtpd2ps xmm0, xmm0
addps xmm2, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [rdx + 0x1f0]
addps xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movaps xmm1, xmm2
movaps xmm7, xmm0
shufps xmm1, xmm2, 0x55
xorps xmm0, xmm0
shufps xmm2, xmm2, 0xaa
cvtss2sd xmm0, xmm1
cvtss2sd xmm6, xmm2
movaps xmm8, xmm0
subsd xmm7, qword [rsi + 0x4d0]
subsd xmm8, qword [rsi + 0x4d8]
subsd xmm6, qword [rsi + 0x4e0]
movaps xmm0, xmm7
mulsd xmm0, xmm7
movaps xmm2, xmm8
mulsd xmm2, xmm8
movaps xmm1, xmm6
mulsd xmm1, xmm6
addsd xmm2, xmm0
xorps xmm0, xmm0
addsd xmm2, xmm1
ucomisd xmm0, xmm2
ja 0x180042748
xorps xmm0, xmm0
sqrtsd xmm0, xmm2
jmp 0x180042750
movaps xmm0, xmm2
call fcn.18004683c
divsd xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
movaps xmm6, xmm0
movaps xmm1, xmm7
mulsd xmm6, xmm15
movaps xmm0, xmm8
divsd xmm6, qword [0x18004ea10]
subsd xmm6, qword [0x18004ea58]
xorps xmm6, xmmword [0x18004edc0]
subsd xmm6, qword [rsi + 0x4e8]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
movsd xmm3, qword [0x18004e9e8]
movaps xmm2, xmm0
movsd xmm7, qword [0x18004eba0]
movaps xmm1, xmm6
mulsd xmm2, xmm15
minsd xmm1, xmm3
comisd xmm7, xmm1
divsd xmm2, qword [0x18004ea10]
subsd xmm2, qword [rsi + 0x4f0]
jbe 0x1800427c9
movaps xmm6, xmm7
jmp 0x1800427d2
comisd xmm3, xmm6
ja 0x1800427d2
movaps xmm6, xmm3
movaps xmm0, xmm2
minsd xmm0, xmm3
comisd xmm7, xmm0
ja 0x1800427eb
comisd xmm3, xmm2
movaps xmm7, xmm2
ja 0x1800427eb
movaps xmm7, xmm3
movd xmm0, dword [0x1800a21cc]
mov r8, qword [rsi + 0xca0]
mov rdx, qword [0x1800a38d0]
add r8, 0x520
cvtdq2pd xmm0, xmm0
movsd qword [rsp + 0x30], xmm14
divsd xmm6, xmm0
divsd xmm7, xmm0
movsd qword [rsp + 0x20], xmm6
movsd qword [rsp + 0x28], xmm7
call fcn.180044c60
test rax, rax
je 0x180042882
mov rcx, qword [0x1800a38b8]
mov edx, 0x18
mov r9, qword [rcx + 0x18]
lea r8d, [rdx - 0x14]
mov rcx, rax
call r9
mov rbx, rax
test rax, rax
je 0x180042882
mov r10, qword [0x1800a38b0]
lea rdx, [rsp + 0x20]
mov r9d, 6
mov rcx, rax
lea r8d, [r9 + 0x12]
call qword [r10 + 0x18]
mov rax, qword [0x1800a38b8]
mov edx, 0x18
mov rcx, rbx
call qword [rax + 0x18]
mov r8, qword [rsi + 0xcb0]
mov rdx, qword [0x1800a38d0]
add r8, 0x968
movsd qword [rsp + 0x40], xmm6
movsd qword [rsp + 0x48], xmm7
movsd qword [rsp + 0x50], xmm14
call fcn.180044c60
test rax, rax
je 0x180042905
mov rcx, qword [0x1800a38b8]
mov edx, 0x18
mov r10, qword [rcx + 0x18]
lea r8d, [rdx - 0x14]
mov rcx, rax
call r10
mov rbx, rax
test rax, rax
je 0x180042905
mov r10, qword [0x1800a38b0]
lea rdx, [rsp + 0x40]
mov r9d, 6
mov rcx, rax
lea r8d, [r9 + 0x12]
call qword [r10 + 0x18]
mov rax, qword [0x1800a38b8]
mov edx, 0x18
mov rcx, rbx
call qword [rax + 0x18]
movaps xmm15, xmmword [rsp + 0x1d0]
mov al, 1
movaps xmm14, xmmword [rsp + 0x1e0]
movaps xmm9, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm7, xmmword [rsp + 0x250]
movaps xmm6, xmmword [rsp + 0x260]
mov rbx, qword [rsp + 0x2a8]
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.180045650
add rsp, 0x288
pop rsi
pop rbp
ret