Function at 0x140020040
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x498]
sub rsp, 0x560
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x140166080]
xor rax, rsp
mov qword [rbp + 0x3b0], rax
mov rsi, r8
mov r13, rdx
mov rdi, rcx
mov r14d, 4
mov rax, qword gs:[0x58]
mov r15, qword [rax]
lea rbx, [0x14018bbe0]
mov eax, dword [r14 + r15]
cmp dword [0x14018ba50], eax
jle 0x14002012b
lea rcx, [0x14018ba50]
call fcn.1400d0878
cmp dword [0x14018ba50], 0xffffffff
jne 0x14002012b
xor edx, edx
mov r8d, 0xb8
mov rcx, rbx
call fcn.1400d30d0
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1400037c0
lea rcx, [0x14010a680]
call fcn.1400d0784
lea rcx, [0x14018ba50]
call fcn.1400d080c
mov eax, dword [r14 + r15]
cmp dword [0x14018bbb8], eax
jle 0x140020166
lea rcx, [0x14018bbb8]
call fcn.1400d0878
cmp dword [0x14018bbb8], 0xffffffff
jne 0x140020166
mov rax, qword [0x14018b1d8]
mov qword [0x14018bb58], rax
lea rcx, [0x14018bbb8]
call fcn.1400d080c
xorps xmm8, xmm8
cmp qword [0x14018bb58], 0
jne 0x14002018b
xorps xmm12, xmm12
xorps xmm6, xmm6
movss dword [rsp + 0x58], xmm6
movss dword [rbp + 0x8c], xmm6
jmp 0x1400201d2
lea rcx, [rbp + 0x88]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rbp + 0x88]
mov rcx, qword [0x14018bb58]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm0, dword [rbp + 0x8c]
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x58], xmm0
movd xmm12, dword [rbp + 0x88]
cvtdq2ps xmm12, xmm12
movss dword [rbp + 0x8c], xmm0
movss dword [rbp + 0x88], xmm12
xor edx, edx
mov r8d, 0xb8
lea rcx, [rbp + 0x230]
call fcn.1400d30d0
movaps xmm0, xmmword [rsi]
movaps xmmword [rbp - 0x80], xmm0
movaps xmm1, xmmword [rsi + 0x10]
movaps xmmword [rbp - 0x70], xmm1
movaps xmm0, xmmword [rsi + 0x20]
movaps xmmword [rbp - 0x60], xmm0
movaps xmm1, xmmword [rsi + 0x30]
movaps xmmword [rbp - 0x50], xmm1
movsd xmm0, qword [rsi + 0x40]
movsd qword [rbp - 0x40], xmm0
mov eax, dword [rdi + 0x140]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x80]
mov r8, rdi
lea rdx, [rbp + 0x230]
call fcn.140046f40
mov rdx, qword [rbp + 0x238]
lea r12, [rdi + 0x48]
test rdx, rdx
jne 0x140020251
cmp byte [r12], dl
je 0x140020fa1
jmp 0x14002025b
cmp byte [rdi + 0x48], 0
je 0x1400202e2
cmp qword [0x14018bbe8], 0
jne 0x1400202e2
lea rax, [rbp + 0x230]
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rbx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rbx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rbx + 0x60], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rbx + 0x70], xmm1
movups xmm0, xmmword [rax + 0x80]
movups xmmword [rbx + 0x80], xmm0
movups xmm1, xmmword [rax + 0x90]
movups xmmword [rbx + 0x90], xmm1
movups xmm0, xmmword [rax + 0xa0]
movups xmmword [rbx + 0xa0], xmm0
mov rax, qword [rax + 0xb0]
mov qword [rbx + 0xb0], rax
cmp byte [r12], 0
je 0x140020430
cmp byte [rdi + 0x44], 0
je 0x1400203a2
cmp byte [0x14018b1b7], 0
jne 0x1400203a2
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x170]
call fcn.1400037c0
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rbx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rbx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rbx + 0x60], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rbx + 0x70], xmm1
movups xmm0, xmmword [rax + 0x80]
movups xmmword [rbx + 0x80], xmm0
movups xmm1, xmmword [rax + 0x90]
movups xmmword [rbx + 0x90], xmm1
movups xmm0, xmmword [rax + 0xa0]
movups xmmword [rbx + 0xa0], xmm0
mov rax, qword [rax + 0xb0]
mov qword [rbx + 0xb0], rax
mov dword [0x14018b3a4], edx
mov dword [0x14018b3a8], edx
mov dword [0x14018b3a0], edx
jmp 0x140020fa1
cmp byte [rdi + 0x49], 0
jne 0x140020304
lea rcx, [rbp + 0x230]
movups xmm0, xmmword [rbx]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rcx + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rcx + 0x70], xmm1
movups xmm0, xmmword [rbx + 0x80]
movups xmmword [rcx + 0x80], xmm0
movups xmm1, xmmword [rbx + 0x90]
movups xmmword [rcx + 0x90], xmm1
movups xmm0, xmmword [rbx + 0xa0]
movups xmmword [rcx + 0xa0], xmm0
mov rax, qword [rbx + 0xb0]
mov qword [rcx + 0xb0], rax
mov rdx, qword [rbp + 0x238]
test rdx, rdx
je 0x140020dc3
xor edx, edx
mov r8d, 0xb8
lea rcx, [rbp + 0xb0]
call fcn.1400d30d0
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0xb0]
call fcn.1400037c0
xorps xmm15, xmm15
xorps xmm10, xmm10
xorps xmm14, xmm14
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp - 0x70], xmm1
lea r8d, [rdx + 4]
lea rdx, str.Head
lea rcx, [rbp - 0x80]
call fcn.140005a30
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp - 0x50], xmm1
mov r8d, 5
lea rdx, str.Torso
lea rcx, [rbp - 0x60]
call fcn.140005a30
nop
lea rcx, [rdi + 0x168]
mov r8d, 2
lea rdx, [rbp - 0x80]
call fcn.140021770
nop
lea r9, [fcn.140004a90]
mov edx, 0x20
lea r8d, [rdx - 0x1e]
lea rcx, [rbp - 0x80]
call fcn.1400d08f0
xor edx, edx
mov r8d, 0xb8
lea rcx, [rbp + 0x2f0]
call fcn.1400d30d0
lea rcx, [rbp + 0x2f0]
call fcn.14001a3b0
xor edx, edx
mov r8d, 0xb8
lea rcx, [rbp + 0x170]
call fcn.1400d30d0
lea rcx, [rbp + 0x170]
call fcn.14001a3b0
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x230]
call fcn.1400415b0
nop
mov rbx, qword [rbp + 0x90]
mov r14, qword [rbp + 0x98]
cmp rbx, r14
je 0x140020668
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
lea r8d, [rax + 5]
lea rdx, str.Decal
lea rcx, [rsp + 0x60]
call fcn.140005a30
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140041ad0
cmp qword [rax + 8], 0
je 0x14002059a
lea rcx, [rbp + 0x170]
jmp 0x1400205e2
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
lea r8d, [rax + 9]
lea rdx, str.SpotLight
lea rcx, [rsp + 0x60]
call fcn.140005a30
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140041ad0
cmp qword [rax + 8], 0
je 0x140020658
lea rcx, [rbp + 0x2f0]
movups xmm0, xmmword [rbx]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rcx + 0x60], xmm0
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [rcx + 0x70], xmm1
movups xmm0, xmmword [rbx + 0x80]
movups xmmword [rcx + 0x80], xmm0
movups xmm1, xmmword [rbx + 0x90]
movups xmmword [rcx + 0x90], xmm1
movups xmm0, xmmword [rbx + 0xa0]
movups xmmword [rcx + 0xa0], xmm0
mov rax, qword [rbx + 0xb0]
mov qword [rcx + 0xb0], rax
add rbx, 0xb8
cmp rbx, r14
jne 0x140020550
lea rcx, [rbp + 0x90]
call fcn.140021270
mov ecx, dword [rdi + 0x180]
test ecx, ecx
je 0x140020732
cmp ecx, 1
jne 0x14002080f
lea rcx, [rbp + 0xb0]
lea rax, [rbp + 0x2f0]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx + 0x70], xmm1
movups xmm0, xmmword [rax + 0x80]
movups xmmword [rcx + 0x80], xmm0
movups xmm1, xmmword [rax + 0x90]
movups xmmword [rcx + 0x90], xmm1
movups xmm0, xmmword [rax + 0xa0]
movups xmmword [rcx + 0xa0], xmm0
mov rax, qword [rax + 0xb0]
mov qword [rcx + 0xb0], rax
mov rax, qword [rbp + 0x2f8]
test rax, rax
je 0x140020fa1
mov rdx, qword [rbp + 0x308]
mov rcx, qword [rbp + 0x2f0]
jmp 0x1400207d4
lea rcx, [rbp + 0xb0]
lea rax, [rbp + 0x170]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx + 0x70], xmm1
movups xmm0, xmmword [rax + 0x80]
movups xmmword [rcx + 0x80], xmm0
movups xmm1, xmmword [rax + 0x90]
movups xmmword [rcx + 0x90], xmm1
movups xmm0, xmmword [rax + 0xa0]
movups xmmword [rcx + 0xa0], xmm0
mov rax, qword [rax + 0xb0]
mov qword [rcx + 0xb0], rax
mov rax, qword [rbp + 0x178]
test rax, rax
je 0x140020fa1
mov rdx, qword [rbp + 0x188]
mov rcx, qword [rbp + 0x170]
shr rdx, 0x20
mov r8b, 1
add rdx, rax
call fcn.140005440
mov r8d, dword [rbp + 0xd0]
add r8, rax
mov rdx, qword [rbp + 0xb0]
lea rcx, [rbp - 0x80]
call fcn.1400410c0
movss xmm14, dword [rbp - 0x70]
movss xmm10, dword [rbp - 0x74]
movss xmm15, dword [rbp - 0x78]
mov rax, qword [rbp + 0xb8]
test rax, rax
je 0x140020dc3
cmp byte [rdi + 0x3c], 0
je 0x1400208b6
mov edx, dword [rbp + 0xcc]
add rdx, rax
mov r8b, 1
mov rcx, qword [rbp + 0xb0]
call fcn.140005440
test rax, rax
jne 0x140020854
movaps xmm1, xmm8
movaps xmm0, xmm8
movaps xmm2, xmm8
jmp 0x140020881
mov r8d, dword [rbp + 0xf8]
add r8, rax
lea rdx, [rsp + 0x48]
mov rcx, qword [rbp + 0xb0]
call fcn.1400483a0
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x4c]
movss xmm1, dword [rsp + 0x48]
movss xmm3, dword [rdi + 0x8c]
divss xmm1, xmm3
addss xmm15, xmm1
cmp byte [rdi + 0x3d], 0
je 0x1400208ad
divss xmm0, xmm3
cmp byte [rdi + 0x4c], 0
je 0x1400208a8
comiss xmm0, xmm8
jbe 0x1400208ad
addss xmm10, xmm0
divss xmm2, xmm3
addss xmm14, xmm2
movsd xmm13, qword [0x140145cf8]
cmp byte [rdi + 0x4d], 0
je 0x140020bd3
mov r14d, 4
mov eax, dword [r14 + r15]
cmp dword [0x14018ba6c], eax
jle 0x14002093a
lea rcx, [0x14018ba6c]
call fcn.1400d0878
cmp dword [0x14018ba6c], 0xffffffff
jne 0x14002093a
call fcn.1400cf66c
mov rbx, rax
call fcn.1400cf650
cmp rbx, 0x989680
jne 0x14002090c
imul rax, rax, 0x64
jmp 0x140020927
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov qword [0x14018bb50], rax
lea rcx, [0x14018ba6c]
call fcn.1400d080c
mov rbx, qword [rbp + 0x88]
mov eax, dword [r14 + r15]
cmp dword [0x14018bba0], eax
jle 0x1400209d6
lea rcx, [0x14018bba0]
call fcn.1400d0878
cmp dword [0x14018bba0], 0xffffffff
jne 0x1400209d6
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x50], 0
movaps xmm0, xmmword [rsi]
movaps xmmword [rbp - 0x80], xmm0
movaps xmm1, xmmword [rsi + 0x10]
movaps xmmword [rbp - 0x70], xmm1
movaps xmm0, xmmword [rsi + 0x20]
movaps xmmword [rbp - 0x60], xmm0
movaps xmm1, xmmword [rsi + 0x30]
movaps xmmword [rbp - 0x50], xmm1
movsd xmm0, qword [rsi + 0x40]
movsd qword [rbp - 0x40], xmm0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 0
mov r9, rbx
lea r8, [rbp - 0x80]
lea rdx, [0x14018bb28]
lea rcx, [rbp + 0xb0]
call fcn.140045540
nop
lea rcx, [0x14018bba0]
call fcn.1400d080c
call fcn.1400cf66c
mov r14, rax
call fcn.1400cf650
cmp r14, 0x989680
jne 0x1400209f2
imul rcx, rax, 0x64
jmp 0x140020a13
cqo
idiv r14
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv r14
mov rcx, rax
imul rax, r8, 0x3b9aca00
add rcx, rax
sub rcx, qword [0x14018bb50]
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, dword [rdi + 0x7c]
cmp rdx, rax
jl 0x140020b14
movss dword [rsp + 0x48], xmm15
movss dword [rsp + 0x4c], xmm10
movss dword [rsp + 0x50], xmm14
movzx eax, byte [rdi + 0x3c]
movaps xmm0, xmmword [rsi]
movaps xmmword [rbp - 0x80], xmm0
movaps xmm1, xmmword [rsi + 0x10]
movaps xmmword [rbp - 0x70], xmm1
movaps xmm0, xmmword [rsi + 0x20]
movaps xmmword [rbp - 0x60], xmm0
movaps xmm1, xmmword [rsi + 0x30]
movaps xmmword [rbp - 0x50], xmm1
movsd xmm0, qword [rsi + 0x40]
movsd qword [rbp - 0x40], xmm0
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x28], rcx
mov byte [rsp + 0x20], al
mov r9, rbx
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x38]
lea rcx, [rbp + 0xb0]
call fcn.140045540
movsd xmm0, qword [rax]
movsd qword [0x14018bb28], xmm0
mov eax, dword [rax + 8]
mov dword [0x14018bb30], eax
mov dword [0x14018b3a8], 0x3dcccccd
mov dword [0x14018b3a0], 0x3dcccccd
call fcn.1400cf66c
mov rbx, rax
call fcn.1400cf650
cmp rbx, 0x989680
jne 0x140020aef
imul rax, rax, 0x64
jmp 0x140020b0d
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
mov qword [0x14018bb50], rax
movss xmm7, dword [0x14018bb30]
movss xmm9, dword [0x14018bb2c]
movss xmm11, dword [0x14018bb28]
ucomiss xmm11, xmm8
jp 0x140020b4a
jne 0x140020b4a
ucomiss xmm9, xmm8
jp 0x140020b4a
jne 0x140020b4a
ucomiss xmm7, xmm8
jp 0x140020b4a
je 0x140020bd3
movaps xmm0, xmm10
subss xmm0, xmm9
cvtss2sd xmm0, xmm0
movaps xmm1, xmm13
call fcn.140100210
movaps xmm6, xmm0
movaps xmm0, xmm15
subss xmm0, xmm11
cvtss2sd xmm0, xmm0
movaps xmm1, xmm13
call fcn.140100210
addsd xmm6, xmm0
movaps xmm1, xmm14
subss xmm1, xmm7
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movaps xmm1, xmm13
call fcn.140100210
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x140020bab
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x140020bb3
movaps xmm0, xmm6
call fcn.1401021a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x140145de0]
comiss xmm0, xmm1
jb 0x140020bd3
movaps xmm15, xmm11
movaps xmm10, xmm9
movaps xmm14, xmm7
movss dword [rsp + 0x48], xmm15
movss dword [rsp + 0x4c], xmm10
movss dword [rsp + 0x50], xmm14
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140040ae0
movss xmm0, dword [rsp + 0x58]
movss xmm6, dword [rsp + 0x34]
subss xmm0, xmm6
cvtps2pd xmm0, xmm0
movaps xmm1, xmm13
call fcn.140100210
movaps xmm9, xmm0
movaps xmm0, xmm12
movss xmm7, dword [rsp + 0x30]
subss xmm0, xmm7
cvtss2sd xmm0, xmm0
movaps xmm1, xmm13
call fcn.140100210
addsd xmm9, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm9
ja 0x140020c4e
xorps xmm0, xmm0
sqrtsd xmm0, xmm9
jmp 0x140020c57
movaps xmm0, xmm9
call fcn.1401021a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movd xmm0, dword [rdi + 0x5c]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jae 0x140020dbc
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xor r14d, r14d
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
lea r8d, [r14 + 9]
lea rdx, str.Workspace
lea rcx, [rsp + 0x60]
call fcn.140005a30
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x30]
lea rcx, [0x140183390]
call fcn.140041ad0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r14
mov qword [rbp + 0xa8], r14
lea r8d, [r14 + 6]
lea rdx, str.Camera
lea rcx, [rbp + 0x90]
call fcn.140005a30
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x170]
mov rcx, rbx
call fcn.140041ad0
test rax, rax
je 0x140020d2e
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140020d2e
mov r8d, dword [rax + 0x30]
add rdx, 0xffffffffffffffdc
add r8, rdx
lea rdx, [rbp - 0x80]
mov rcx, qword [rax]
call fcn.1400494c0
movss xmm11, dword [rbp - 0x54]
movss xmm0, dword [rbp - 0x58]
movss xmm12, dword [rbp - 0x5c]
jmp 0x140020d48
call fcn.140019640
call fcn.140040c30
movss xmm12, dword [rax]
movss xmm0, dword [rax + 4]
movss xmm11, dword [rax + 8]
subss xmm0, xmm10
cvtps2pd xmm0, xmm0
movaps xmm1, xmm13
call fcn.140100210
movaps xmm9, xmm0
subss xmm12, xmm15
cvtps2pd xmm0, xmm12
movaps xmm1, xmm13
call fcn.140100210
addsd xmm9, xmm0
subss xmm11, xmm14
cvtps2pd xmm0, xmm11
movaps xmm1, xmm13
call fcn.140100210
addsd xmm9, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm9
ja 0x140020d9f
xorps xmm0, xmm0
sqrtsd xmm0, xmm9
jmp 0x140020da8
movaps xmm0, xmm9
call fcn.1401021a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movd xmm0, dword [rdi + 0x58]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x140020de6
cmp byte [r12], 0
jne 0x140020de6
mov dword [0x14018b3a4], 0
mov dword [0x14018b3a8], 0
mov dword [0x14018b3a0], 0
jmp 0x140020fa1
ucomiss xmm7, xmm8
jp 0x140020dee
je 0x140020dc3
ucomiss xmm6, xmm8
jp 0x140020df6
je 0x140020dc3
cmp byte [rdi + 0x50], 0
je 0x140020ebe
movss dword [rsp + 0x38], xmm15
movss dword [rsp + 0x3c], xmm10
movss dword [rsp + 0x40], xmm14
movaps xmm0, xmmword [0x140146340]
movaps xmmword [rbp + 0x90], xmm0
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.140040ae0
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
mov r8, qword [0x14018b1c8]
mov rax, qword [r8 + 0x3ed0]
mov byte [rax + 0xb8], 1
movss xmm0, dword [rsp + 0x30]
movss dword [rsp + 0x38], xmm0
movss xmm1, dword [rsp + 0x34]
movss dword [rsp + 0x3c], xmm1
movss xmm0, dword [rbp + 0x88]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsp + 0x58]
movss dword [rsp + 0x34], xmm0
lea rcx, [rbp + 0x90]
call fcn.14004c450
mov r9d, eax
mov rcx, qword [r8 + 0x3ed0]
movss xmm0, dword [0x140145c4c]
movss dword [rsp + 0x20], xmm0
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x30]
mov rcx, qword [rcx + 0x298]
call fcn.14006fb40
cmp byte [rdi + 0x44], 0
je 0x140020fa1
mov ecx, dword [rdi + 0x160]
test ecx, ecx
je 0x140020f4a
cmp ecx, 1
jne 0x140020fa1
mov ecx, dword [r13 + 0xf0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140020fa1
mov eax, dword [rsi + 4]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x38], xmm0
mov eax, dword [rsi]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss dword [rsp + 0x3c], xmm1
movd xmm0, dword [rdi + 0x60]
cvtdq2ps xmm0, xmm0
subss xmm7, xmm0
movss dword [rsp + 0x30], xmm7
movd xmm1, dword [rdi + 0x64]
cvtdq2ps xmm1, xmm1
subss xmm6, xmm1
movss dword [rsp + 0x34], xmm6
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, rdi
call fcn.14001aad0
jmp 0x140020fa1
mov eax, dword [rsi + 4]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x38], xmm0
mov eax, dword [rsi]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss dword [rsp + 0x3c], xmm1
movd xmm0, dword [rdi + 0x60]
cvtdq2ps xmm0, xmm0
subss xmm7, xmm0
movss dword [rsp + 0x30], xmm7
movd xmm1, dword [rdi + 0x64]
cvtdq2ps xmm1, xmm1
subss xmm6, xmm1
movss dword [rsp + 0x34], xmm6
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, rdi
call fcn.14001a510
mov rcx, qword [rbp + 0x3b0]
xor rcx, rsp
call fcn.1400d04f0
lea r11, [rsp + 0x560]
mov rbx, qword [r11 + 0x58]
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 rdi
pop rsi
pop rbp
ret