Function at 0x140028cd0
Capabilities:
Log keystrokes via polling

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 - 0x4f8]
sub rsp, 0x5d0
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 [0x14003d010]
xor rax, rsp
mov qword [rbp + 0x420], rax
xor r12d, r12d
movss xmm9, dword [0x140036d94]
xorps xmm15, xmm15
movss xmm7, dword [0x140036dbc]
cmp byte [0x14003d662], r12b
je 0x140028e47
mov rbx, qword [0x14003df50]
add rbx, 0x1cc8
movss xmm6, dword [0x14003d708]
cvttss2si edx, dword [0x14003d70c]
mov eax, dword [0x14003df60]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
mov eax, dword [0x14003dfe0]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm1
movd xmm2, edx
cvtdq2ps xmm2, xmm2
movaps xmm0, xmm2
subss xmm0, xmm7
mulss xmm0, dword [0x140036e10]
divss xmm0, xmm2
movss xmm2, dword [0x14003d65c]
subss xmm2, xmm9
mov dword [rsp + 0x28], edx
movss dword [rsp + 0x20], xmm0
xorps xmm3, xmm3
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14001dab0
movss dword [rsp + 0x28], xmm6
mov byte [rsp + 0x20], 1
mov r9d, 0xffedad00
mov r8d, dword [rbx + 0x80]
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.14001c2b0
mov ecx, dword [rbx + 0x84]
test ecx, ecx
jns 0x140028e40
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, r12d
test eax, eax
cmovg edx, eax
lea rcx, [rbx + 0x80]
call fcn.1400126c0
mov dword [rbx + 0x80], r12d
cmp byte [0x14003d664], r12b
je 0x140028f2d
mov rcx, qword [0x14003df50]
add rcx, 0x1cc8
mov eax, dword [0x14003df60]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
mov r8d, dword [0x14003dfe0]
lea edx, [r8 + 0xc]
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm1
lea edx, [r8 - 0xc]
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
movss dword [rsp + 0x60], xmm0
movss dword [rsp + 0x64], xmm1
movss dword [rsp + 0x20], xmm7
mov r9d, 0xffedad00
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
call fcn.14001dfe0
mov r10, qword [0x14003df50]
mov edx, dword [0x14003df60]
lea ecx, [rdx + 0xc]
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
mov eax, dword [0x14003dfe0]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss dword [rsp + 0x50], xmm1
movss dword [rsp + 0x54], xmm0
add edx, 0xfffffff4
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
movss dword [rsp + 0x60], xmm1
movss dword [rsp + 0x64], xmm0
movss dword [rsp + 0x20], xmm7
mov r9d, 0xffedad00
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [r10 + 0x1cc8]
call fcn.14001dfe0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x130], xmm0
mov qword [rbp + 0x140], r12
mov rcx, qword [0x14003e0b0]
sub rcx, qword [0x14003e0a8]
movabs r13, 0x2aaaaaaaaaaaaaab
mov rax, r13
imul rcx
mov rbx, rdx
sar rbx, 2
mov rax, rbx
shr rax, 0x3f
add rbx, rax
mov rdi, r12
mov r15, r12
mov qword [rbp + 0xf8], r12
je 0x140029003
movabs rax, 0xaaaaaaaaaaaaaaa
cmp rbx, rax
ja 0x14002a884
mov rdx, rbx
call fcn.14002fe10
mov r15, rax
mov qword [rbp + 0xf8], rax
mov rsi, rax
mov qword [rbp + 0x130], rax
lea rcx, [rbx + rbx*2]
lea rdx, [rax + rcx*8]
mov qword [rbp + 0x140], rdx
mov rbx, qword [0x14003e0b0]
mov rdx, qword [0x14003e0a8]
sub rbx, rdx
mov r8, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov rax, r13
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rax, [rdx + rdx*2]
lea rdi, [rsi + rax*8]
mov rbx, rdi
mov qword [rbp + 0x138], rbx
jmp 0x140029011
mov rbx, qword [rbp + 0x138]
mov rsi, qword [rbp + 0x130]
movss xmm0, dword [0x140036f20]
movss dword [rsp + 0x58], xmm0
mov r14, r12
mov qword [rsp + 0x50], r12
mov r8, qword [0x14003e018]
add r8, 0x98
call fcn.14002f4f0
mov r8, rax
mov qword [rbp + 0x298], rax
test rax, rax
je 0x14002a810
sub rdi, r15
mov rax, r13
imul rdi
sar rdx, 2
mov rcx, rdx
shr rcx, 0x3f
movss xmm11, dword [0x140036ddc]
movss xmm10, dword [0x140036e68]
add rdx, rcx
je 0x14002a686
xor ecx, ecx
sub rbx, rsi
mov rax, r13
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rbp + 0x100], rdx
nop dword [rax]
lea rax, [rcx + rcx*2]
movups xmm6, xmmword [r15 + rax*8]
movsd xmm0, qword [r15 + rax*8 + 0x10]
movsd qword [rbp + 0x228], xmm0
mov eax, dword [0x14003df68]
mov dword [rsp + 0x68], eax
lea ecx, [r12*8]
add rcx, r8
mov qword [rsp + 0x70], rcx
lea rax, [rbp + 0x290]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], 8
mov qword [rsp + 0x38], 0
lea rax, [rbp + 0x300]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rsp + 0x68]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r15, qword [rbp + 0x290]
mov eax, dword [0x14003df68]
mov dword [rbp + 0x308], eax
movq r13, xmm6
lea rax, [r13 + 0x130]
mov qword [rbp + 0x310], rax
lea rax, [rbp + 0x288]
mov qword [rbp + 0x318], rax
mov qword [rbp + 0x320], 8
mov qword [rsp + 0x38], 0
lea rax, [rbp + 0x2ac]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rbp + 0x308]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rbp + 0x308]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rsi, qword [rbp + 0x288]
lea rax, [rsi - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14002a660
mov r8d, 0x42
mov rbx, qword [rbp + 0x228]
mov rdx, rbx
lea rcx, [rbp + 0x2e0]
call fcn.140027730
mov eax, dword [0x14003df68]
mov dword [rsp + 0x68], eax
lea rax, [rsi + 0x11c]
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x40], 0
mov dword [rbp - 0x38], 0
lea rax, [rbp - 0x40]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], 0xc
mov qword [rsp + 0x38], 0
lea rax, [rbp + 0x2a8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rsp + 0x68]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movsd xmm0, qword [rbp - 0x40]
movsd qword [rbp + 0x2b0], xmm0
mov eax, dword [rbp - 0x38]
mov dword [rbp + 0x2b8], eax
lea rdx, [rbp + 0x2b0]
lea rcx, [rbp + 0x368]
call fcn.1400278a0
lea r8, [r13 + 0x238]
call fcn.14002f4f0
mov r14, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x14002a660
mov rdx, qword [0x14003e050]
add rdx, 0x11c
mov ecx, dword [0x14003df68]
mov dword [rsp + 0x68], ecx
mov qword [rsp + 0x70], rdx
mov qword [rbp - 0x60], 0
mov dword [rbp - 0x58], 0
lea rax, [rbp - 0x60]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], 0xc
mov qword [rsp + 0x38], 0
lea rax, [rbp + 0x280]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rsp + 0x68]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movss xmm0, dword [rbp - 0x60]
movss dword [0x14003e148], xmm0
movss xmm1, dword [rbp - 0x5c]
movss dword [0x14003e14c], xmm1
movss xmm0, dword [rbp - 0x58]
movss dword [0x14003e150], xmm0
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp + 0x2c0]
call fcn.140027730
movsd xmm0, qword [rbp + 0x2c0]
movsd qword [rbp + 0x2d0], xmm0
mov eax, dword [rbp + 0x2c8]
mov dword [rbp + 0x2d8], eax
lea rdx, [rbp + 0x2d0]
lea rcx, [rbp + 0x358]
call fcn.1400278a0
movsd xmm0, qword [rbp + 0x2e0]
movsd qword [rbp + 0x240], xmm0
mov eax, dword [rbp + 0x2e8]
mov dword [rbp + 0x248], eax
lea rdx, [rbp + 0x240]
lea rcx, [rbp + 0x378]
call fcn.1400278a0
mov r8d, 0x42
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.140027730
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp + 0x260]
call fcn.140027730
movsd xmm6, qword [rbp - 0x20]
movsd qword [rbp + 0x250], xmm6
mov ebx, dword [rbp - 0x18]
mov dword [rbp + 0x258], ebx
lea rdx, [rbp + 0x250]
lea rcx, [rbp + 0x388]
call fcn.1400278a0
movsd qword [rbp + 0x2f0], xmm6
mov dword [rbp + 0x2f8], ebx
lea rdx, [rbp + 0x2f0]
lea rcx, [rbp - 0x70]
call fcn.1400278a0
movsd xmm0, qword [rbp + 0x260]
movsd qword [rbp + 0x270], xmm0
mov eax, dword [rbp + 0x268]
mov dword [rbp + 0x278], eax
lea rdx, [rbp + 0x270]
lea rcx, [rbp - 0x30]
call fcn.1400278a0
movd xmm8, ebx
movaps xmm0, xmm8
addss xmm0, dword [0x140036e2c]
movss xmm7, dword [rbp - 0x20]
movss dword [rbp + 0x110], xmm7
movss xmm6, dword [rbp - 0x1c]
movss dword [rbp + 0x114], xmm6
movss dword [rbp + 0x118], xmm0
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x120]
call fcn.1400278a0
subss xmm6, dword [0x14003e14c]
movaps xmm1, xmm11
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
subss xmm7, dword [0x14003e148]
movaps xmm1, xmm11
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
subss xmm8, dword [0x14003e150]
movaps xmm1, xmm11
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x1400294f3
xorps xmm12, xmm12
sqrtss xmm12, xmm6
jmp 0x1400294ff
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm12, xmm0
divss xmm12, xmm10
movss xmm6, dword [rbp + 0x124]
movaps xmm11, xmm6
movss xmm7, dword [rbp - 0x2c]
subss xmm11, xmm7
movaps xmm14, xmm11
andps xmm14, xmmword [0x140037120]
cvtps2pd xmm0, xmm11
mulsd xmm0, qword [0x140036dd0]
cvtpd2ps xmm13, xmm0
mov rcx, qword [0x14003dfe8]
add rcx, 0xf28
mov eax, dword [0x14003df68]
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x70], rcx
lea rax, [rbp - 0x50]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], 4
mov qword [rsp + 0x38], 0
lea rax, [rbp + 0x2a4]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rsp + 0x68]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edi, dword [rbp - 0x50]
mov eax, dword [0x14003df68]
mov dword [rbp + 0x218], eax
lea rax, [r14 + 0xf28]
mov qword [rbp + 0x220], rax
lea rax, [rbp - 0x4c]
mov qword [rbp + 0x228], rax
mov qword [rbp + 0x230], 4
xor r14d, r14d
mov qword [rsp + 0x38], r14
lea rax, [rbp + 0x2a0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rbp + 0x218]
mov qword [rsp + 0x20], rax
lea r9d, [r14 + 0x28]
lea r8, [rbp + 0x218]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, dword [rbp - 0x4c]
mov eax, dword [0x14003df68]
mov dword [rbp + 0x330], eax
lea rax, [r15 + 0x18]
mov qword [rbp + 0x338], rax
lea rax, [rbp - 0x48]
mov qword [rbp + 0x340], rax
mov qword [rbp + 0x348], 4
mov qword [rsp + 0x38], r14
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x28
lea rax, [rbp + 0x330]
mov qword [rsp + 0x20], rax
lea r9d, [r14 + 0x28]
lea r8, [rbp + 0x330]
mov edx, 0x22159c
mov rcx, qword [0x14003dff0]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp edi, ebx
je 0x140029cf3
movss xmm0, dword [0x14003d658]
comiss xmm0, xmm12
jbe 0x14002a657
movss xmm8, dword [rbp + 0x120]
cmp byte [0x14003d672], r14b
je 0x14002972f
mov rcx, qword [0x14003df50]
add rcx, 0x1cc8
movss dword [rbp - 0x10], xmm8
movss dword [rbp - 0xc], xmm6
mov eax, 0x51eb851f
imul dword [0x14003e008]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm1, edx
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 8], xmm0
movss dword [rbp - 4], xmm1
movss xmm1, dword [0x14003d708]
movss dword [rsp + 0x20], xmm1
mov r9d, 0xffedad00
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call fcn.14001dfe0
cmp byte [0x14003d670], r14b
je 0x1400297cc
mov rax, qword [0x14003df50]
lea r8, [rax + 0x1cc8]
movss xmm0, dword [0x14003d6d8]
movss dword [rbp + 0x148], xmm0
movss xmm1, dword [0x14003d6dc]
movss dword [rbp + 0x14c], xmm1
movss xmm0, dword [0x14003d6e0]
movss dword [rbp + 0x150], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x154], xmm1
lea rcx, [rbp + 0x148]
call fcn.140003540
movss dword [rbp], xmm8
movss dword [rbp + 4], xmm6
movaps xmm2, xmm11
divss xmm2, dword [0x140036e40]
mov dword [rsp + 0x20], 0x32
mov r9d, eax
lea rdx, [rbp]
mov rcx, r8
call fcn.14001e800
movss xmm10, dword [rbp - 0x30]
cmp byte [0x14003d66f], r14b
je 0x14002989c
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d6cc]
movss dword [rbp + 0x188], xmm0
movss xmm1, dword [0x14003d6d0]
movss dword [rbp + 0x18c], xmm1
movss xmm0, dword [0x14003d6d4]
movss dword [rbp + 0x190], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x194], xmm1
lea rcx, [rbp + 0x188]
call fcn.140003540
movaps xmm2, xmm11
mulss xmm2, xmm9
movaps xmm0, xmm2
addss xmm0, xmm10
movss dword [rbp + 8], xmm0
movss dword [rbp + 0xc], xmm7
movaps xmm1, xmm10
subss xmm1, xmm2
movss dword [rbp + 0x10], xmm1
movss dword [rbp + 0x14], xmm7
movaps xmm0, xmm6
subss xmm0, dword [0x140036e4c]
movss dword [rbp + 0x18], xmm8
movss dword [rbp + 0x1c], xmm0
mov dword [rsp + 0x20], eax
lea r9, [rbp + 8]
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x18]
mov rcx, r10
call fcn.14001e5d0
movaps xmm9, xmm13
mulss xmm9, dword [0x140036d94]
cmp byte [0x14003d66b], r14b
je 0x140029950
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d6a0]
movss dword [rbp + 0x198], xmm0
movss dword [rbp + 0x19c], xmm0
movss dword [rbp + 0x1a0], xmm0
movss xmm0, dword [0x14003d710]
mulss xmm0, dword [rax + 0x1550]
movss dword [rbp + 0x1a4], xmm0
lea rcx, [rbp + 0x198]
call fcn.140003540
movaps xmm0, xmm10
addss xmm0, xmm9
movss dword [rbp + 0x20], xmm0
movss dword [rbp + 0x24], xmm7
movaps xmm1, xmm8
subss xmm1, xmm9
movss dword [rbp + 0x28], xmm1
movss dword [rbp + 0x2c], xmm6
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp + 0x20]
lea rdx, [rbp + 0x28]
mov rcx, r10
call fcn.14001e2a0
cmp byte [0x14003d669], r14b
je 0x140029a13
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d708]
movss xmm0, dword [0x14003d684]
movss dword [rbp + 0x168], xmm0
movss xmm1, dword [0x14003d688]
movss dword [rbp + 0x16c], xmm1
movss xmm0, dword [0x14003d68c]
movss dword [rbp + 0x170], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x174], xmm1
lea rcx, [rbp + 0x168]
call fcn.140003540
movaps xmm0, xmm10
addss xmm0, xmm9
movss dword [rbp + 0x30], xmm0
movss dword [rbp + 0x34], xmm7
movaps xmm1, xmm8
subss xmm1, xmm9
movss dword [rbp + 0x38], xmm1
movss dword [rbp + 0x3c], xmm6
movss xmm0, dword [0x140036dbc]
movss dword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], r8d
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp + 0x30]
lea rdx, [rbp + 0x38]
mov rcx, r10
call fcn.14001e160
cmp byte [0x14003df4a], r14b
je 0x140029a84
mov rcx, qword [0x14003df50]
add rcx, 0x1cc8
movss dword [rbp + 0x40], xmm8
movss dword [rbp + 0x44], xmm6
mov eax, dword [0x14003e008]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x48], xmm0
movss dword [rbp + 0x4c], xmm1
movss xmm1, dword [0x14003d708]
movss dword [rsp + 0x20], xmm1
mov r9d, 0xffedad00
lea r8, [rbp + 0x40]
lea rdx, [rbp + 0x48]
call fcn.14001dfe0
cmp byte [0x14003d66a], r14b
je 0x140029acb
mov dword [rsp + 0x5c], 0xffedad00
cvttss2si eax, dword [0x14003d708]
cvttss2si r9d, xmm14
cvttss2si r8d, xmm13
cvttss2si edx, xmm6
movaps xmm0, xmm8
subss xmm0, xmm9
cvttss2si ecx, xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x20], rax
call fcn.140026fd0
cmp byte [0x14003d66d], r14b
je 0x140029b66
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d70c]
movss xmm0, dword [0x14003d6b4]
movss dword [rbp + 0x1a8], xmm0
movss xmm1, dword [0x14003d6b8]
movss dword [rbp + 0x1ac], xmm1
movss xmm0, dword [0x14003d6bc]
movss dword [rbp + 0x1b0], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x1b4], xmm1
lea rcx, [rbp + 0x1a8]
call fcn.140003540
movss dword [rbp + 0x50], xmm8
movss dword [rbp + 0x54], xmm6
mov dword [rsp + 0x20], r8d
mov r9d, eax
movaps xmm2, xmm11
lea rdx, [rbp + 0x50]
mov rcx, r10
call fcn.14001e800
cmp byte [0x14003d66c], r14b
je 0x140029c07
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d70c]
movss xmm0, dword [0x14003d6a8]
movss dword [rbp + 0x1b8], xmm0
movss xmm1, dword [0x14003d6ac]
movss dword [rbp + 0x1bc], xmm1
movss xmm0, dword [0x14003d6b0]
movss dword [rbp + 0x1c0], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x1c4], xmm1
lea rcx, [rbp + 0x1b8]
call fcn.140003540
movss dword [rbp + 0x58], xmm8
movss dword [rbp + 0x5c], xmm6
movss xmm0, dword [0x14003d708]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r8d
mov r9d, eax
movaps xmm2, xmm11
lea rdx, [rbp + 0x58]
mov rcx, r10
call fcn.14001e730
cmp byte [0x14003d671], r14b
je 0x140029ce7
xorps xmm2, xmm2
cvtss2sd xmm2, xmm12
movq r8, xmm2
lea rdx, str.__.fM_
lea rcx, [rbp + 0x3a0]
call fcn.14002f6d0
mov r8, qword [0x14003df50]
subss xmm10, dword [0x140036e34]
lea rcx, [rbp + 0x3a0]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r14b
jne 0x140029c52
lea r9, [rbp + 0x3a0]
add r9, rax
lea rax, [rbp + 0x3a0]
cmp rax, r9
je 0x140029ce7
mov rax, qword [r8 + 0x1d00]
movsxd rdx, dword [r8 + 0x1d28]
add rdx, rdx
mov rcx, qword [r8 + 0x1d30]
movups xmm0, xmmword [rcx + rdx*8 - 0x10]
movups xmmword [rbp + 0x218], xmm0
mov byte [rsp + 0x48], r14b
movss dword [rsp + 0x40], xmm15
mov qword [rsp + 0x38], r9
lea rcx, [rbp + 0x3a0]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0x218]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0xffedad00
movaps xmm0, xmm10
unpcklps xmm0, xmm7
movq r9, xmm0
movss xmm2, dword [rax + 0x10]
lea rdx, [r8 + 0x1cc8]
mov rcx, qword [rax + 8]
call fcn.140021550
cmp byte [0x14003d668], r14b
jmp 0x14002a49c
cmp rsi, r15
je 0x14002a573
comiss xmm12, dword [0x140036ddc]
jbe 0x14002a657
movss xmm8, dword [rbp - 0x30]
cmp byte [0x14003d71e], r14b
je 0x140029d7a
mov rcx, qword [0x14003df50]
add rcx, 0x1cc8
movss dword [rbp + 0x60], xmm8
movss dword [rbp + 0x64], xmm7
movd xmm1, dword [0x14003e008]
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x68], xmm0
movss dword [rbp + 0x6c], xmm1
movss xmm1, dword [0x14003d708]
movss dword [rsp + 0x20], xmm1
mov r9d, 0xffedad00
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x68]
call fcn.14001dfe0
movss xmm10, dword [rbp + 0x120]
cmp byte [0x14003d71c], r14b
je 0x140029e25
mov rbx, qword [0x14003df50]
add rbx, 0x1cc8
movss dword [rbp + 0x70], xmm10
movss dword [rbp + 0x74], xmm6
movaps xmm2, xmm11
divss xmm2, dword [0x140036e40]
mov dword [rsp + 0x28], 0x32
movss xmm0, dword [0x140036e0c]
movss dword [rsp + 0x20], xmm0
movaps xmm3, xmm15
lea rdx, [rbp + 0x70]
mov rcx, rbx
call fcn.14001dab0
mov r9d, 0xffedad00
mov r8d, dword [rbx + 0x80]
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.14001d280
mov ecx, dword [rbx + 0x84]
test ecx, ecx
jns 0x140029e1e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, r14d
test eax, eax
cmovg edx, eax
lea rcx, [rbx + 0x80]
call fcn.1400126c0
mov dword [rbx + 0x80], r14d
movaps xmm9, xmm11
mulss xmm9, dword [0x140036d94]
cmp byte [0x14003d71b], r14b
je 0x140029f07
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d76c]
movss dword [rbp + 0x1c8], xmm0
movss xmm1, dword [0x14003d770]
movss dword [rbp + 0x1cc], xmm1
movss xmm0, dword [0x14003d774]
movss dword [rbp + 0x1d0], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x1d4], xmm1
lea rcx, [rbp + 0x1c8]
call fcn.140003540
movaps xmm0, xmm8
addss xmm0, xmm9
movss dword [rbp + 0x78], xmm0
movss dword [rbp + 0x7c], xmm7
movaps xmm1, xmm8
subss xmm1, xmm9
movss dword [rbp + 0x80], xmm1
movss dword [rbp + 0x84], xmm7
movaps xmm0, xmm6
subss xmm0, dword [0x140036e4c]
movss dword [rbp + 0x88], xmm10
movss dword [rbp + 0x8c], xmm0
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x88]
mov rcx, r10
call fcn.14001e5d0
cmp byte [0x14003d71a], r14b
je 0x140029feb
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d760]
movss dword [rbp + 0x1d8], xmm0
movss xmm1, dword [0x14003d764]
movss dword [rbp + 0x1dc], xmm1
movss xmm0, dword [0x14003d768]
movss dword [rbp + 0x1e0], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x1e4], xmm1
lea rcx, [rbp + 0x1d8]
call fcn.140003540
movaps xmm0, xmm8
addss xmm0, xmm9
movss dword [rbp + 0x90], xmm0
movss dword [rbp + 0x94], xmm7
movaps xmm1, xmm8
subss xmm1, xmm9
movss dword [rbp + 0x98], xmm1
movss dword [rbp + 0x9c], xmm7
movaps xmm0, xmm6
subss xmm0, dword [0x140036e50]
movss dword [rbp + 0xa0], xmm10
movss dword [rbp + 0xa4], xmm0
movss xmm0, dword [0x14003d708]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], eax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0x98]
lea rdx, [rbp + 0xa0]
mov rcx, r10
call fcn.14001e460
cmp byte [0x14003df49], r14b
je 0x14002a06e
mov rcx, qword [0x14003df50]
add rcx, 0x1cc8
movss dword [rbp + 0xa8], xmm8
movss dword [rbp + 0xac], xmm7
mov eax, dword [0x14003e008]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0xb0], xmm0
movss dword [rbp + 0xb4], xmm1
movss xmm1, dword [0x14003d708]
movss dword [rsp + 0x20], xmm1
mov r9d, 0xffedad00
lea r8, [rbp + 0xa8]
lea rdx, [rbp + 0xb0]
call fcn.14001dfe0
movaps xmm9, xmm13
mulss xmm9, dword [0x140036d94]
cmp byte [0x14003d717], r14b
je 0x14002a144
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d73c]
movss dword [rbp + 0x158], xmm0
movss xmm1, dword [0x14003d740]
movss dword [rbp + 0x15c], xmm1
movss xmm0, dword [0x14003d744]
movss dword [rbp + 0x160], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x164], xmm1
lea rcx, [rbp + 0x158]
call fcn.140003540
movaps xmm0, xmm8
addss xmm0, xmm9
movss dword [rbp + 0xb8], xmm0
movss dword [rbp + 0xbc], xmm7
movaps xmm1, xmm10
subss xmm1, xmm9
movss dword [rbp + 0xc0], xmm1
movss dword [rbp + 0xc4], xmm6
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp + 0xb8]
lea rdx, [rbp + 0xc0]
mov rcx, r10
call fcn.14001e2a0
cmp byte [0x14003d715], r14b
je 0x14002a219
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d708]
movss xmm0, dword [0x14003d724]
movss dword [rbp + 0x178], xmm0
movss xmm1, dword [0x14003d728]
movss dword [rbp + 0x17c], xmm1
movss xmm0, dword [0x14003d72c]
movss dword [rbp + 0x180], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x184], xmm1
lea rcx, [rbp + 0x178]
call fcn.140003540
movaps xmm0, xmm8
addss xmm0, xmm9
movss dword [rbp + 0xc8], xmm0
movss dword [rbp + 0xcc], xmm7
movaps xmm1, xmm10
subss xmm1, xmm9
movss dword [rbp + 0xd0], xmm1
movss dword [rbp + 0xd4], xmm6
movss xmm0, dword [0x140036dbc]
movss dword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], r8d
movss dword [rsp + 0x20], xmm15
mov r9d, eax
lea r8, [rbp + 0xc8]
lea rdx, [rbp + 0xd0]
mov rcx, r10
call fcn.14001e160
cmp byte [0x14003d716], r14b
je 0x14002a260
mov dword [rsp + 0x5c], 0xffedad00
cvttss2si eax, dword [0x14003d708]
cvttss2si r9d, xmm14
cvttss2si r8d, xmm13
cvttss2si edx, xmm6
movaps xmm0, xmm10
subss xmm0, xmm9
cvttss2si ecx, xmm0
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x5c]
mov qword [rsp + 0x20], rax
call fcn.140026fd0
cmp byte [0x14003d719], r14b
je 0x14002a304
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d70c]
movss xmm0, dword [0x14003d754]
movss dword [rbp + 0x1e8], xmm0
movss xmm1, dword [0x14003d758]
movss dword [rbp + 0x1ec], xmm1
movss xmm0, dword [0x14003d75c]
movss dword [rbp + 0x1f0], xmm0
movss xmm1, dword [0x14003d710]
mulss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x1f4], xmm1
lea rcx, [rbp + 0x1e8]
call fcn.140003540
movss dword [rbp + 0xd8], xmm10
movss dword [rbp + 0xdc], xmm6
mov dword [rsp + 0x20], r8d
mov r9d, eax
movaps xmm2, xmm11
lea rdx, [rbp + 0xd8]
mov rcx, r10
call fcn.14001e800
cmp byte [0x14003d718], r14b
je 0x14002a3ae
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
cvttss2si r8d, dword [0x14003d70c]
movss xmm0, dword [0x14003d748]
movss dword [rbp + 0x1f8], xmm0
movss xmm1, dword [0x14003d74c]
movss dword [rbp + 0x1fc], xmm1
movss xmm0, dword [0x14003d750]
movss dword [rbp + 0x200], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x204], xmm1
lea rcx, [rbp + 0x1f8]
call fcn.140003540
movss dword [rbp + 0xe0], xmm10
movss dword [rbp + 0xe4], xmm6
movss xmm0, dword [0x14003d708]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r8d
mov r9d, eax
movaps xmm2, xmm11
lea rdx, [rbp + 0xe0]
mov rcx, r10
call fcn.14001e730
cmp byte [0x14003d71d], r14b
je 0x14002a495
xorps xmm2, xmm2
cvtss2sd xmm2, xmm12
movq r8, xmm2
lea rdx, str.__.fM_
lea rcx, [rbp + 0x3e0]
call fcn.14002f6d0
mov r8, qword [0x14003df50]
subss xmm8, dword [0x140036e2c]
lea rcx, [rbp + 0x3e0]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], r14b
jne 0x14002a400
lea r9, [rbp + 0x3e0]
add r9, rax
lea rax, [rbp + 0x3e0]
cmp rax, r9
je 0x14002a495
mov rax, qword [r8 + 0x1d00]
movsxd rdx, dword [r8 + 0x1d28]
add rdx, rdx
mov rcx, qword [r8 + 0x1d30]
movups xmm0, xmmword [rcx + rdx*8 - 0x10]
movups xmmword [rbp + 0x218], xmm0
mov byte [rsp + 0x48], r14b
movss dword [rsp + 0x40], xmm15
mov qword [rsp + 0x38], r9
lea rcx, [rbp + 0x3e0]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0x218]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0xffedad00
movaps xmm0, xmm8
unpcklps xmm0, xmm7
movq r9, xmm0
movss xmm2, dword [rax + 0x10]
lea rdx, [r8 + 0x1cc8]
mov rcx, qword [rax + 8]
call fcn.140021550
cmp byte [0x14003d714], r14b
je 0x14002a645
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm2, dword [rbp - 0x70]
subss xmm2, xmm0
mov eax, dword [0x14003e008]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm3, dword [rbp - 0x6c]
subss xmm3, xmm0
mov eax, dword [0x14003e058]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm1, dword [rbp - 0x68]
subss xmm1, xmm0
mulss xmm3, xmm3
mulss xmm2, xmm2
addss xmm3, xmm2
mulss xmm1, xmm1
addss xmm3, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm3
ja 0x14002a518
xorps xmm0, xmm0
sqrtss xmm0, xmm3
jmp 0x14002a520
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm10, dword [0x140036e68]
divss xmm0, xmm10
movss xmm1, dword [0x14003d65c]
movss xmm9, dword [0x140036d94]
movss xmm11, dword [0x140036ddc]
comiss xmm1, xmm0
jbe 0x14002a660
movss xmm7, dword [rsp + 0x58]
comiss xmm7, xmm0
jbe 0x14002a660
movss dword [rsp + 0x58], xmm0
mov r14, r13
mov qword [rsp + 0x50], r13
jmp 0x14002a665
cmp dword [rbp - 0x48], 0x118a13c
jne 0x14002a657
mov rax, qword [0x14003df50]
lea r10, [rax + 0x1cc8]
movss xmm0, dword [0x14003d784]
movss dword [rbp + 0x208], xmm0
movss xmm1, dword [0x14003d788]
movss dword [rbp + 0x20c], xmm1
movss xmm0, dword [0x14003d78c]
movss dword [rbp + 0x210], xmm0
movss xmm1, dword [rax + 0x1550]
movss dword [rbp + 0x214], xmm1
lea rcx, [rbp + 0x208]
call fcn.140003540
mov r9d, eax
movss xmm0, dword [rbp - 0x30]
movss dword [rbp + 0xe8], xmm0
movss dword [rbp + 0xec], xmm7
movd xmm1, dword [0x14003e008]
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14003e048]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0xf0], xmm0
movss dword [rbp + 0xf4], xmm1
movss xmm1, dword [0x14003d708]
movss dword [rsp + 0x20], xmm1
lea r8, [rbp + 0xe8]
lea rdx, [rbp + 0xf0]
mov rcx, r10
call fcn.14001dfe0
jmp 0x14002a657
movss xmm9, dword [0x140036d94]
movss xmm10, dword [0x140036e68]
movss xmm11, dword [0x140036ddc]
mov r14, qword [rsp + 0x50]
inc r12d
mov ecx, r12d
cmp rcx, qword [rbp + 0x100]
mov r15, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x298]
jb 0x1400290a0
cmp byte [0x14003d668], 0
je 0x14002a810
test r14, r14
je 0x14002a810
cvttss2si ecx, dword [0x14003d640]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, r14
test ax, ax
jns 0x14002a80a
call fcn.140028630
cmp byte [0x14003d661], 0
je 0x14002a810
movss xmm0, dword [0x14003d650]
addss xmm0, dword [0x140036dbc]
movss dword [0x14003d650], xmm0
ucomiss xmm0, dword [0x140036f0c]
jp 0x14002a704
jne 0x14002a704
mov dword [0x14003d650], 0
mov dword [0x14003d64c], 0
jmp 0x14002a810
ucomiss xmm0, xmm15
jp 0x14002a71b
jne 0x14002a71b
mov dword [0x14003d64c], 0
jmp 0x14002a810
ucomiss xmm0, dword [0x140036e50]
jp 0x14002a72a
je 0x14002a7fe
ucomiss xmm0, xmm10
jp 0x14002a736
je 0x14002a7e7
ucomiss xmm0, dword [0x140036e88]
jp 0x14002a745
je 0x14002a7d0
ucomiss xmm0, dword [0x140036ea0]
jp 0x14002a750
je 0x14002a7b9
ucomiss xmm0, dword [0x140036ebc]
jp 0x14002a75b
je 0x14002a7a2
ucomiss xmm0, dword [0x140036ed0]
jp 0x14002a766
je 0x14002a78b
ucomiss xmm0, dword [0x140036ee4]
jp 0x14002a780
jne 0x14002a780
mov dword [0x14003d64c], 0x40e00000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036ef0]
jp 0x14002a797
jne 0x14002a797
mov dword [0x14003d64c], 0x40c00000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036ef4]
jp 0x14002a7ae
jne 0x14002a7ae
mov dword [0x14003d64c], 0x40a00000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036efc]
jp 0x14002a7c5
jne 0x14002a7c5
mov dword [0x14003d64c], 0x40800000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036f00]
jp 0x14002a7dc
jne 0x14002a7dc
mov dword [0x14003d64c], 0x40400000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036f04]
jp 0x14002a7f3
jne 0x14002a7f3
mov dword [0x14003d64c], 0x40000000
jmp 0x14002a810
ucomiss xmm0, dword [0x140036f08]
jp 0x14002a810
jne 0x14002a810
mov dword [0x14003d64c], 0x3f800000
jmp 0x14002a810
call fcn.140028930
nop
lea rcx, [rbp + 0x130]
call fcn.14002f440
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.140030060
lea r11, [rsp + 0x5d0]
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.14002fdf0
int3