Function at 0x14004fd90
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push r15
lea rbp, [r11 - 0x168]
sub rsp, 0x258
mov rax, qword [0x140146040]
xor rax, rsp
mov qword [rbp + 0xc8], rax
mov r15d, ecx
mov rcx, qword [0x14016ff18]
test rcx, rcx
je 0x1400503c3
mov qword [r11 + 0x18], rsi
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x28], r14
mov r14, qword [0x14016e5a0]
call fcn.14004d3f0
xor r12d, r12d
mov rsi, rax
test rax, rax
je 0x14005039a
lea rcx, [rax + 0x2e0]
movaps xmmword [rsp + 0x230], xmm6
call fcn.14005bfb0
lea rcx, [rsi + 0x2e8]
movaps xmm6, xmm0
call fcn.14005bfb0
addss xmm0, dword [0x14012f804]
comiss xmm0, xmm6
jb 0x140050392
mov qword [rsp + 0x278], rbx
mov ecx, 0x198
mov qword [rsp + 0x250], rdi
movaps xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x210], xmm8
movaps xmmword [rsp + 0x200], xmm9
call fcn.14005be70
mov rcx, qword [0x14016fdf8]
mov rdi, rax
mov rcx, qword [rcx + 0x20]
add rcx, 0x9d8
call fcn.14005be70
mov rbx, rax
lea rcx, [rax + 0x1cc4]
call fcn.14005bfb0
lea rcx, [rbx + 0x1f34]
call fcn.14005bfb0
lea rcx, [rsi + 0x5b8]
call fcn.14005c060
shl eax, 4
movsxd rcx, eax
add rcx, 0x570
add rcx, rsi
call fcn.14005be70
lea ecx, [r15 + r15*2]
shl ecx, 5
movsxd rdx, ecx
lea rcx, [rbp + 0x50]
add rdx, rax
call fcn.14005c100
lea rdx, [rsi + 0x1c0]
lea rcx, [rsp + 0x30]
call fcn.14005c100
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.14004c0f0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x50]
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
movups xmm8, xmmword [rax + 0x20]
movups xmm9, xmmword [rax + 0x30]
call fcn.14004c0f0
lea r8, [rbp + 0x50]
movaps xmmword [rbp + 0x50], xmm6
lea rdx, [rsp + 0x30]
movaps xmmword [rbp + 0x60], xmm7
lea rcx, [rbp + 0x10]
movaps xmmword [rbp + 0x70], xmm8
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x40], xmm1
movups xmm1, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rbp + 0x80], xmm9
call fcn.14004c310
lea r8, [rbp + 0x50]
lea rdx, [rsp + 0x20]
movups xmm2, xmmword [rax + 0x30]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmm2
movaps xmmword [rsp + 0x50], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
shufps xmm1, xmm2, 0x55
movsd qword [rbp + 0x50], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
shufps xmm2, xmm2, 0xaa
movsd qword [rbp + 0x58], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movsd qword [rbp + 0x60], xmm0
call fcn.14004d4a0
xorps xmm0, xmm0
lea rcx, [rdi + 0x168]
xorps xmm6, xmm6
lea rdx, [rbp + 0xb0]
mov r8d, 0x18
movsd qword [rbp + 0xc0], xmm6
movups xmmword [rbp + 0xb0], xmm0
call fcn.14004bf30
movsd xmm8, qword [rsp + 0x20]
ucomisd xmm8, xmm6
mov rdi, qword [rsp + 0x250]
jp 0x14004ffef
je 0x140050370
movsd xmm7, qword [rsp + 0x28]
ucomisd xmm7, xmm6
jp 0x140050001
je 0x140050370
mov eax, dword [0x14016e74c]
movsd xmm1, qword [0x14012f8c0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
mov eax, dword [0x14016e748]
movaps xmm9, xmm0
movsd xmm1, qword [0x14012f8c0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm9, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm9
ja 0x140050067
xorps xmm0, xmm0
sqrtsd xmm0, xmm9
jmp 0x140050070
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movd xmm1, dword [0x14016d2b4]
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
ja 0x140050370
cmp byte [reloc.WS2_32.dll_accept], r12b
movss xmm1, dword [r14 + 0x10]
movss xmm0, dword [r14 + 0x14]
mulss xmm1, dword [0x14012f83c]
mov eax, dword [reloc.WS2_32.dll_getpeername]
mulss xmm0, dword [0x14012f83c]
movaps xmmword [rsp + 0x1d0], xmm13
movaps xmmword [rsp + 0x1f0], xmm10
cvtps2pd xmm2, xmm1
cvtps2pd xmm3, xmm0
subsd xmm8, xmm2
movaps xmmword [rsp + 0x1e0], xmm11
subsd xmm7, xmm3
cvtpd2ps xmm10, xmm8
cvtpd2ps xmm11, xmm7
je 0x1400500fa
test eax, eax
je 0x1400500fa
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm10, xmm0
divss xmm11, xmm0
movsxd rax, dword [reloc.WS2_32.dll_bind]
cmp byte [rax + r14 + 0xb30], r12b
je 0x140050119
cmp byte [0x1401702bb], r12b
sete byte [0x1401702bb]
lea rcx, [rsi + 0x5b8]
call fcn.14005c060
shl eax, 4
movsxd rcx, eax
add rcx, 0x570
add rcx, rsi
call fcn.14005be70
lea rcx, [rbp + 0x50]
lea rdx, [rax + 0x2940]
call fcn.14005c100
lea rdx, [rsi + 0x1c0]
lea rcx, [rsp + 0x30]
call fcn.14005c100
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x30]
call fcn.14004c0f0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x50]
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
movups xmm8, xmmword [rax + 0x20]
movups xmm9, xmmword [rax + 0x30]
call fcn.14004c0f0
lea r8, [rsp + 0x30]
movaps xmmword [rsp + 0x30], xmm6
lea rdx, [rbp + 0x50]
movaps xmmword [rsp + 0x40], xmm7
lea rcx, [rbp - 0x70]
movaps xmmword [rsp + 0x50], xmm8
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp + 0x50], xmm0
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp + 0x60], xmm1
movups xmm1, xmmword [rax + 0x30]
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x80], xmm1
movaps xmmword [rsp + 0x60], xmm9
call fcn.14004c310
cmp byte [0x1401702b2], r12b
xorps xmm8, xmm8
xorps xmm9, xmm9
xorps xmm13, xmm13
movups xmm1, xmmword [rax + 0x30]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
cvtss2sd xmm8, xmm1
shufps xmm1, xmm1, 0xaa
cvtss2sd xmm13, xmm1
cvtss2sd xmm9, xmm0
je 0x140050310
mov ecx, dword [reloc.WS2_32.dll_bind]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140050310
movss xmm6, dword [0x14012f8b8]
movaps xmm0, xmm9
subsd xmm0, qword [0x14016feb8]
movaps xmm1, xmm6
cvtpd2ps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm7, xmm0
movaps xmm1, xmm6
movaps xmm0, xmm8
subsd xmm0, qword [0x14016feb0]
cvtpd2ps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm2, xmm13
addss xmm7, xmm0
subsd xmm2, qword [0x14016fec0]
movaps xmm1, xmm6
cvtpd2ps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x140050289
xorps xmm0, xmm0
sqrtss xmm0, xmm7
jmp 0x140050291
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm3, dword [0x14012f870]
lea r8, [rbp + 0x50]
divss xmm3, xmm0
lea rdx, [rsp + 0x20]
cvtps2pd xmm2, xmm3
mulss xmm3, xmm3
movaps xmm0, xmm2
movaps xmm1, xmm2
mulsd xmm0, qword [rbp + 0xb0]
mulsd xmm2, qword [rbp + 0xc0]
mulsd xmm1, qword [rbp + 0xb8]
addsd xmm0, xmm8
addsd xmm1, xmm9
movsd qword [rbp + 0x50], xmm0
movss xmm0, dword [0x14012fa90]
andps xmm0, xmmword [0x140130100]
mulss xmm0, dword [0x14012f83c]
movsd qword [rbp + 0x58], xmm1
mulss xmm0, xmm3
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
addsd xmm0, xmm13
movsd qword [rbp + 0x60], xmm0
call fcn.14004d4a0
cmp byte [0x1401702bb], r12b
movaps xmm13, xmmword [rsp + 0x1d0]
je 0x14005035e
cvttss2si eax, xmm10
mov qword [rbp + 0x50], r12
mov r8d, 0x28
mov dword [rbp + 0x60], r12d
lea rdx, [rbp + 0x50]
mov dword [rbp + 0x64], 1
mov ecx, 1
xorps xmm0, xmm0
mov dword [rbp + 0x58], eax
cvttss2si eax, xmm11
movdqu xmmword [rbp + 0x68], xmm0
mov dword [rbp + 0x5c], eax
call qword [sym.imp.USER32.dll_SendInput]
movaps xmm10, xmmword [rsp + 0x1f0]
movaps xmm11, xmmword [rsp + 0x1e0]
movaps xmm8, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x220]
mov rbx, qword [rsp + 0x278]
movaps xmm9, xmmword [rsp + 0x200]
movaps xmm6, xmmword [rsp + 0x230]
mov r14, qword [rsp + 0x240]
mov rsi, qword [rsp + 0x280]
mov qword [0x14016ff18], r12
mov r12, qword [rsp + 0x248]
mov dword [0x14016d2c4], 0x7f7fffff
mov rcx, qword [rbp + 0xc8]
xor rcx, rsp
call fcn.14005e8a0
add rsp, 0x258
pop r15
pop rbp
ret