Function at 0x4482b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x4f8f48]
xor eax, esp
mov dword [esp + 0x34], eax
movss xmm0, dword [0x4f8ff4]
xorps xmm1, xmm1
comiss xmm0, xmm1
push ebx
push esi
movss dword [esp + 0x18], xmm1
jbe 0x4485d6
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x12
call esi
test al, 1
je 0x4482ff
cmp byte [0x4f8fe9], 0
sete al
mov byte [0x4f8fe9], al
jmp 0x448304
mov al, byte [0x4f8fe9]
test al, al
jne 0x448320
cmp byte [0x4f8ff9], al
je 0x4485d6
cmp byte [0x4f8ffb], al
je 0x4485d6
mov eax, dword [0x971750]
sub eax, dword [0x97174c]
sar eax, 2
test eax, eax
jne 0x4485d6
cmp byte [0x971708], al
jne 0x4485d6
movss xmm0, dword [0x971818]
movss dword [esp + 0x14], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x38], xmm0
movss xmm0, dword [0x4f8ff4]
divss xmm0, dword [0x4cc9b8]
movsx eax, byte [0x4f8ff2]
push eax
movss xmm1, dword [0x97181c]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x14], xmm0
call esi
test ax, ax
je 0x4483bd
movss xmm1, dword [0x971818]
subss xmm1, dword [esp + 0x10]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [0x4cc9c8]
comiss xmm1, dword [esp + 0x10]
jbe 0x4483bd
movss xmm0, dword [0x4cca68]
movss dword [esp + 0x18], xmm0
movsx eax, byte [0x4f8ff3]
push eax
call esi
test ax, ax
je 0x4483f5
movss xmm1, dword [esp + 0x10]
addss xmm1, dword [0x971818]
movss dword [esp + 0x14], xmm1
movss xmm1, dword [0x4cc9c8]
comiss xmm1, dword [esp + 0x10]
jbe 0x4483f5
movss dword [esp + 0x18], xmm1
movsx eax, byte [0x4f8ff0]
push eax
call esi
test ax, ax
je 0x4484b9
cmp byte [0x4f8ff9], 0
je 0x448488
cmp byte [0x4f8ffb], 0
je 0x448488
movss xmm0, dword [0x971828]
subss xmm0, dword [0x4cc9d8]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x4cc958]
divsd xmm0, qword [0x4cc988]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x971818]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xc]
call fcn.004176a0
mulss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x97181c]
movss dword [esp + 0xc], xmm0
jmp 0x4484b9
movss xmm1, dword [0x97181c]
subss xmm1, dword [esp + 0x10]
movss dword [esp + 0xc], xmm1
movss xmm1, dword [0x4cc9c8]
comiss xmm1, dword [esp + 0x10]
jbe 0x4484b9
movss xmm0, dword [0x4cca68]
movss dword [esp + 0x38], xmm0
movsx eax, byte [0x4f8ff1]
push eax
call esi
test ax, ax
je 0x4484f3
movss xmm1, dword [esp + 0x10]
addss xmm1, dword [0x97181c]
movss xmm2, dword [0x4cc9c8]
comiss xmm2, dword [esp + 0x10]
movss dword [esp + 0xc], xmm1
jbe 0x4484f9
movss dword [esp + 0x38], xmm2
jmp 0x4484f9
movss xmm1, dword [esp + 0xc]
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
addss xmm0, dword [esp + 0x18]
addss xmm1, dword [esp + 0x38]
push str.Wall_and_Water
movss dword [esp + 0x1c], xmm0
movss dword [esp + 0x20], xmm1
call fcn.00449da0
lea eax, [esp + 0x20]
mov ecx, 0x9717f8
push eax
lea edx, [esp + 0x1c]
call fcn.00442c90
mov ecx, dword [esp + 0x38]
add esp, 4
mov bl, al
cmp ecx, 0x10
jb 0x448575
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44856b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x44856b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004b5153
add esp, 8
test bl, bl
jne 0x4485d6
movss xmm0, dword [esp + 0x14]
lea eax, [esp + 0x38]
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0
push 4
push eax
mov eax, dword [0x9717f8]
add eax, dword [0x4f9104]
push eax
push dword [0x971718]
movss dword [esp + 0x4c], xmm0
call esi
mov ecx, dword [0x4f9104]
lea eax, [esp + 0x38]
movss xmm1, dword [esp + 0xc]
add ecx, 4
push 0
push 4
push eax
mov eax, dword [0x9717f8]
add eax, ecx
movss dword [esp + 0x44], xmm1
push eax
push dword [0x971718]
call esi
mov ecx, dword [esp + 0x3c]
pop esi
pop ebx
xor ecx, esp
call fcn.004b50b5
mov esp, ebp
pop ebp
ret