Function at 0x14003c540
Capabilities:
Log keystrokes via polling
Terminate process

Disassembly:
push rbp
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rax, qword [0x140050340]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov ecx, 0x71
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14003c587
mov rcx, qword [0x1400504e8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
cmp byte [0x1400501ca], 0
mov qword [rsp + 0x2a0], rbx
mov qword [rsp + 0x2a8], rsi
mov qword [rsp + 0x2b0], rdi
mov qword [rsp + 0x2b8], r14
je 0x14003c651
mov eax, dword [0x1400505c4]
mov r14d, dword [0x1400501e8]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, dword [0x1400505c0]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
call fcn.1400096e0
movaps xmm0, xmmword [0x140048490]
lea rcx, [rsp + 0x78]
movups xmmword [rsp + 0x78], xmm0
mov rsi, rax
call fcn.140007180
movd xmm0, edi
lea rdx, [rsp + 0x30]
cvtdq2ps xmm0, xmm0
mov r9d, eax
movd xmm2, r14d
cvttss2si ecx, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movd xmm1, ecx
cvttss2si ecx, xmm0
movss xmm0, dword [0x140043f20]
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x30], xmm1
movd xmm1, ecx
mov rcx, rsi
cvtdq2ps xmm1, xmm1
mov dword [rsp + 0x20], 0xc8
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x34], xmm1
call fcn.140018cd0
mov rdx, qword [0x1400504f0]
lea r8, [rbp + 0x50]
mov rcx, qword [0x1400504e8]
xor r14d, r14d
add rdx, 0x3e098a8
mov qword [rsp + 0x20], r14
lea r9d, [r14 + 8]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [rbp + 0x50]
lea r9d, [r14 + 0x40]
mov rcx, qword [0x1400504e8]
lea r8, [rsp + 0x38]
add rdx, 0x7e0
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rax, qword [0x140050608]
mov esi, r14d
mov rdx, qword [0x140050600]
sub rax, rdx
sar rax, 3
test rax, rax
je 0x14003ce25
movaps xmmword [rsp + 0x250], xmm9
mov edi, r14d
movss xmm9, dword [0x140043ef8]
movaps xmmword [rsp + 0x240], xmm10
movss xmm10, dword [rsp + 0x6c]
movaps xmmword [rsp + 0x230], xmm11
xorps xmm11, xmm11
movaps xmmword [rsp + 0x1f0], xmm15
movss xmm15, dword [0x140043f60]
movaps xmmword [rsp + 0x280], xmm6
movaps xmmword [rsp + 0x270], xmm7
movaps xmmword [rsp + 0x260], xmm8
movaps xmmword [rsp + 0x220], xmm12
movaps xmmword [rsp + 0x210], xmm13
movaps xmmword [rsp + 0x200], xmm14
nop dword [rax + rax]
mov rdx, qword [rdi + rdx]
lea r8, [rbp + 0x40]
mov rcx, qword [0x1400504e8]
sub rdx, 0x9c
mov r9d, 0xc
mov qword [rbp + 0x40], r14
mov dword [rbp + 0x48], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rbp + 0x44]
lea r8, [rbp + 0x30]
mov rax, qword [0x140050600]
mov r9d, 0xc
mov rcx, qword [0x1400504e8]
cvtps2pd xmm0, xmm0
mov qword [rsp + 0x20], r14
subsd xmm0, qword [0x140047f90]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x44], xmm0
mov rdx, qword [rdi + rax]
sub rdx, 0x8c
mov qword [rbp + 0x30], r14
mov dword [rbp + 0x38], r14d
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rbp + 0x30]
lea r8, [rbp + 0x28]
movss xmm1, dword [rbp + 0x34]
mov r9d, 1
mov rax, qword [0x140050600]
mov rcx, qword [0x1400504e8]
cvtps2pd xmm0, xmm0
mov qword [rsp + 0x20], r14
cvtps2pd xmm1, xmm1
subsd xmm0, qword [0x140048418]
subsd xmm1, qword [0x140048410]
cvtpd2ps xmm0, xmm0
movss dword [rbp + 0x30], xmm0
cvtpd2ps xmm0, xmm1
movss dword [rbp + 0x34], xmm0
mov rdx, qword [rdi + rax]
dec rdx
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [rbp + 0x28], 0x14
jne 0x14003cda6
mov rax, qword [0x140050600]
mov r9d, 1
mov rcx, qword [0x1400504e8]
mov qword [rsp + 0x20], r14
mov rdx, qword [rdi + rax]
sub rdx, 0x21
cmp byte [0x1400501c7], r14b
jne 0x14003c85e
lea r8, [rbp + 0x29]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [rbp + 0x29], 0x10
jmp 0x14003c86c
lea r8, [rbp + 0x2a]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [rbp + 0x2a], 8
setne al
mov byte [0x1400504e5], al
test al, al
je 0x14003cda6
movss xmm5, dword [rbp + 0x44]
xorps xmm13, xmm13
movss xmm0, dword [rsp + 0x44]
xorps xmm12, xmm12
movss xmm6, dword [rbp + 0x40]
movss xmm1, dword [rsp + 0x64]
movss xmm8, dword [rbp + 0x48]
cvtsi2ss xmm13, dword [0x1400505c4]
cvtsi2ss xmm12, dword [0x1400505c0]
movss xmm2, dword [rsp + 0x54]
movaps xmm14, xmm13
movss xmm4, dword [0x140043edc]
movaps xmm7, xmm12
mulss xmm2, xmm5
mulss xmm0, xmm6
mulss xmm14, xmm9
addss xmm2, xmm0
mulss xmm1, xmm8
movss xmm0, dword [rsp + 0x38]
mulss xmm7, xmm9
movss xmm9, dword [rsp + 0x48]
addss xmm2, xmm1
movss xmm1, dword [rsp + 0x58]
movaps xmm3, xmm9
mulss xmm3, xmm5
mulss xmm0, xmm6
addss xmm2, dword [rsp + 0x74]
mulss xmm1, xmm8
addss xmm3, xmm0
maxss xmm4, xmm2
addss xmm3, xmm1
addss xmm3, dword [rsp + 0x68]
mulss xmm3, xmm14
divss xmm3, xmm4
addss xmm3, xmm14
comiss xmm11, xmm3
ja 0x14003c987
movss xmm2, dword [rsp + 0x4c]
movss xmm0, dword [rsp + 0x3c]
movss xmm1, dword [rsp + 0x5c]
mulss xmm2, xmm5
mulss xmm1, xmm8
movaps xmm8, xmm7
mulss xmm0, xmm6
addss xmm2, xmm0
addss xmm2, xmm1
addss xmm2, xmm10
mulss xmm2, xmm7
divss xmm2, xmm4
subss xmm8, xmm2
comiss xmm11, xmm8
ja 0x14003c987
comiss xmm3, xmm13
jae 0x14003c987
comiss xmm8, xmm12
jb 0x14003c98f
movaps xmm3, xmm11
movaps xmm8, xmm11
movss xmm5, dword [rbp + 0x34]
movss xmm0, dword [rsp + 0x44]
movss xmm6, dword [rbp + 0x30]
movss xmm1, dword [rsp + 0x64]
movss xmm10, dword [rbp + 0x38]
movss xmm2, dword [rsp + 0x54]
movss xmm4, dword [0x140043edc]
mulss xmm9, xmm5
mulss xmm2, xmm5
mulss xmm0, xmm6
mulss xmm1, xmm10
addss xmm2, xmm0
movss xmm0, dword [rsp + 0x38]
mulss xmm0, xmm6
addss xmm9, xmm0
addss xmm2, xmm1
movss xmm1, dword [rsp + 0x58]
mulss xmm1, xmm10
addss xmm2, dword [rsp + 0x74]
addss xmm9, xmm1
maxss xmm4, xmm2
addss xmm9, dword [rsp + 0x68]
mulss xmm9, xmm14
divss xmm9, xmm4
addss xmm9, xmm14
comiss xmm11, xmm9
ja 0x14003ca6b
movss xmm2, dword [rsp + 0x4c]
movss xmm0, dword [rsp + 0x3c]
movss xmm1, dword [rsp + 0x5c]
mulss xmm2, xmm5
mulss xmm1, xmm10
movss xmm10, dword [rsp + 0x6c]
mulss xmm0, xmm6
addss xmm2, xmm0
addss xmm2, xmm1
addss xmm2, xmm10
mulss xmm2, xmm7
divss xmm2, xmm4
subss xmm7, xmm2
comiss xmm11, xmm7
ja 0x14003ca72
comiss xmm9, xmm13
jae 0x14003ca72
comiss xmm7, xmm12
jae 0x14003ca72
jmp 0x14003ca7a
movss xmm10, dword [rsp + 0x6c]
movaps xmm9, xmm11
movaps xmm7, xmm11
movaps xmm0, xmm13
unpcklps xmm3, xmm8
unpcklps xmm0, xmm12
movq rcx, xmm3
movq rdx, xmm0
call fcn.14003f680
test eax, eax
jne 0x14003cd9d
cmp byte [0x1400501c8], r14b
movaps xmm6, xmm7
movss xmm12, dword [0x140043ef8]
subss xmm6, xmm8
movaps xmm10, xmm9
andps xmm6, xmmword [0x140043fb0]
movaps xmm8, xmm6
mulss xmm8, dword [0x140043f00]
movaps xmm0, xmm8
mulss xmm0, xmm12
subss xmm10, xmm0
je 0x14003cb65
lea rcx, [rbp - 0x10]
call fcn.14003e960
movss xmm0, dword [rbp - 0x10]
lea r8, [rbp - 0x70]
movss xmm1, dword [rbp - 0xc]
lea rdx, [rbp - 0x60]
movss xmm3, dword [0x140043f30]
lea rcx, [rbp - 0x50]
mulss xmm0, xmm15
mov dword [rbp - 0x64], 0xff
mulss xmm1, xmm15
mov qword [rbp - 0x60], r14
cvttss2si rax, xmm0
mov dword [rbp - 0x58], r14d
mov dword [rbp - 0x54], 0xff
movss xmm0, dword [rbp - 8]
mov dword [rbp - 0x70], eax
cvttss2si rax, xmm1
mulss xmm0, xmm15
mov dword [rbp - 0x6c], eax
movss dword [rbp - 0x50], xmm10
movss dword [rbp - 0x4c], xmm7
cvttss2si rax, xmm0
movss dword [rbp - 0x48], xmm8
mov dword [rbp - 0x68], eax
movss dword [rbp - 0x44], xmm6
call fcn.14003d670
cmp byte [0x140050500], r14b
je 0x14003cc52
lea rcx, [rbp]
call fcn.14003e960
call fcn.140009920
lea r8, str.FPS:__.f_n
mov edx, 0x80
lea rcx, [rbp + 0x60]
movss xmm3, dword [rax + 0x394]
cvtps2pd xmm3, xmm3
movq r9, xmm3
call fcn.1400404c0
movss xmm0, dword [0x140043f74]
lea rdx, [rbp + 0x60]
xor r9d, r9d
movss dword [rsp + 0x20], xmm0
xor r8d, r8d
lea rcx, [rbp + 0x20]
call fcn.1400061c0
call fcn.1400094c0
movss xmm0, dword [rbp]
lea rcx, [rbp - 0x40]
movss xmm1, dword [rbp + 4]
mov rbx, rax
mulss xmm0, xmm15
mov dword [rbp - 0x34], 0x3f800000
mulss xmm1, xmm15
movss dword [rbp - 0x40], xmm0
movss xmm0, dword [rbp + 8]
mulss xmm0, xmm15
movss dword [rbp - 0x3c], xmm1
movss dword [rbp - 0x38], xmm0
call fcn.140007180
movss xmm0, dword [rbp + 0x20]
lea r9, [rbp + 0x60]
mov r8d, eax
mulss xmm0, xmm12
mov eax, dword [0x1400505c4]
mov rcx, rbx
cdq
mov dword [rsp + 0x34], 0x3f800000
sub eax, edx
mov qword [rsp + 0x20], r14
sar eax, 1
lea rdx, [rsp + 0x30]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
movss dword [rsp + 0x30], xmm1
call fcn.14001b620
cmp byte [0x1400501c9], r14b
je 0x14003ccd5
lea rcx, [rsp + 0x78]
mov dword [rbp + 0x58], 0x41700000
mov dword [rbp + 0x5c], 0x41700000
call fcn.14003e960
call fcn.1400094c0
movss xmm0, dword [rsp + 0x78]
lea rcx, [rbp - 0x30]
movss xmm1, dword [rsp + 0x7c]
mov rbx, rax
mulss xmm0, xmm15
mov dword [rbp - 0x24], 0x3f800000
mulss xmm1, xmm15
movss dword [rbp - 0x30], xmm0
movss xmm0, dword [rbp - 0x80]
mulss xmm0, xmm15
movss dword [rbp - 0x2c], xmm1
movss dword [rbp - 0x28], xmm0
call fcn.140007180
lea r9, str.OW2_External
mov qword [rsp + 0x20], r14
mov r8d, eax
lea rdx, [rbp + 0x58]
mov rcx, rbx
call fcn.14001b620
cmp byte [0x1400504e6], r14b
je 0x14003cd34
mov eax, dword [0x1400505c4]
lea r8, [rbp - 0x20]
cdq
mov qword [rbp - 0x20], r14
sub eax, edx
mov dword [rbp - 0x18], r14d
sar eax, 1
movaps xmm0, xmm9
unpcklps xmm0, xmm7
mov r9d, 1
mov dword [rbp - 0x14], 0xff
movd xmm1, eax
mov eax, dword [0x1400505c0]
cdq
sub eax, edx
movq rdx, xmm0
sar eax, 1
cvtdq2ps xmm1, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
unpcklps xmm1, xmm2
movq rcx, xmm1
call fcn.14003daf0
cmp byte [0x1400504e7], r14b
je 0x14003cd96
call fcn.1400096e0
movaps xmm0, xmmword [0x140044020]
lea rcx, [rbp + 0x10]
movups xmmword [rbp + 0x10], xmm0
mov rbx, rax
call fcn.140007180
divss xmm8, dword [0x140044008]
lea rdx, [rbp + 0x50]
mov r9d, eax
mov rcx, rbx
movss xmm0, dword [0x140043f20]
movss dword [rsp + 0x28], xmm0
movaps xmm2, xmm8
movss dword [rbp + 0x50], xmm9
movss dword [rbp + 0x54], xmm7
mov dword [rsp + 0x20], 0x32
call fcn.140018cd0
movss xmm10, dword [rsp + 0x6c]
movss xmm9, dword [0x140043ef8]
mov rcx, qword [0x140050608]
inc esi
mov rdx, qword [0x140050600]
add rdi, 8
sub rcx, rdx
movsxd rax, esi
sar rcx, 3
cmp rax, rcx
jb 0x14003c740
movaps xmm15, xmmword [rsp + 0x1f0]
movaps xmm14, xmmword [rsp + 0x200]
movaps xmm13, xmmword [rsp + 0x210]
movaps xmm12, xmmword [rsp + 0x220]
movaps xmm11, xmmword [rsp + 0x230]
movaps xmm10, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm8, xmmword [rsp + 0x260]
movaps xmm7, xmmword [rsp + 0x270]
movaps xmm6, xmmword [rsp + 0x280]
mov rdi, qword [rsp + 0x2b0]
mov rsi, qword [rsp + 0x2a8]
mov rbx, qword [rsp + 0x2a0]
mov r14, qword [rsp + 0x2b8]
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1400407b0
add rsp, 0x290
pop rbp
ret