Function at 0x1002cb60
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
push esi
push edi
mov edi, edx
mov esi, ecx
cmp dword [edi + 0x134], 2
jne 0x1002d0df
movss xmm0, dword [edi + 0xe0]
mov al, byte [0x102528d4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [edi + 0xe4]
movss dword [esp + 0x14], xmm0
test al, al
je 0x1002cbab
movss xmm0, dword [0x100377a8]
jmp 0x1002cbb3
movss xmm0, dword [0x10037964]
test al, al
movss dword [esp + 0x20], xmm0
push 0x56
sete byte [0x102528d4]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1002cdf2
cmp byte [0x100758da], 0
je 0x1002cdf2
movss xmm1, dword [esp + 0x14]
movss xmm0, dword [esp + 0x10]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x10037828]
divsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atan
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x100378b0]
mulss xmm1, dword [0x10037890]
movss dword [esp + 0x20], xmm1
mov eax, dword [esp + 0x20]
and eax, 0x7f800000
movss dword [esp + 0x18], xmm1
cmp eax, 0x7f800000
je 0x1002cc58
comiss xmm1, xmm0
ja 0x1002cc58
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1002cc64
xorps xmm1, xmm1
jmp 0x1002cc5e
movaps xmm1, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x18], xmm1
addss xmm1, dword [0x10252818]
comiss xmm1, dword [0x100378dc]
movaps xmm3, xmm1
movss dword [esp + 0x20], xmm1
mulss xmm3, dword [0x100376dc]
movss dword [esp + 0xc], xmm3
ja 0x1002cc99
movss xmm2, dword [0x10037988]
comiss xmm2, xmm1
jbe 0x1002cce9
comiss xmm0, xmm3
jbe 0x1002ccaf
movaps xmm0, xmm1
mulss xmm0, dword [0x10037958]
movss dword [esp + 0xc], xmm0
fld dword [esp + 0xc]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x24]
xorps xmm0, xmm0
fstp dword [esp + 0x10]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x10037900]
jbe 0x1002cce5
addss xmm1, xmm0
jmp 0x1002cce9
subss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
sub esp, 0xc
mov eax, esp
movss dword [0x10252818], xmm1
movss xmm1, dword [esp + 0x24]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [eax + 4], xmm0
mov dword [eax + 8], 0
call fcn.1002c760
movaps xmm1, xmm0
add esp, 0xc
xorps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x1002cd45
mulss xmm1, xmm1
addss xmm1, dword [0x10252818]
movss dword [0x10252818], xmm1
jmp 0x1002cd4d
movss xmm1, dword [0x10252818]
comiss xmm1, dword [0x100378dc]
movaps xmm2, xmm1
movss dword [esp + 0x18], xmm1
mulss xmm2, dword [0x100376dc]
movss dword [esp + 0xc], xmm2
ja 0x1002cd7a
movss xmm3, dword [0x10037988]
comiss xmm3, xmm1
jbe 0x1002cddd
comiss xmm0, xmm2
jbe 0x1002cd90
movaps xmm0, xmm1
mulss xmm0, dword [0x10037958]
movss dword [esp + 0xc], xmm0
fld dword [esp + 0xc]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x1c]
xorps xmm0, xmm0
fstp dword [esp + 0x10]
add esp, 4
comiss xmm0, xmm1
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x10037900]
jbe 0x1002cdd9
addss xmm1, xmm0
movss dword [0x1024405c], xmm1
mov dword [esi + 0x1c], 0xc3e10000
pop edi
pop esi
mov esp, ebp
pop ebp
ret
subss xmm1, xmm0
movss dword [0x1024405c], xmm1
mov dword [esi + 0x1c], 0xc3e10000
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.100028a0
test byte [eax], 1
jne 0x1002d0df
movss xmm0, dword [esi + 0x18]
xorps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x1002ce16
mov dword [esi + 0x18], 0
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [0x10037860]
sqrtss xmm1, xmm1
divss xmm0, xmm1
movss dword [esp + 0x1c], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
movss xmm1, dword [0x1024405c]
movaps xmm3, xmm0
mulss xmm3, dword [0x10037890]
xorps xmm2, xmm2
subss xmm1, dword [0x1025281c]
maxss xmm3, xmm2
comiss xmm1, dword [0x100378dc]
movaps xmm0, xmm1
movss dword [esp + 0x24], xmm1
minss xmm3, dword [0x100378b0]
mulss xmm0, dword [0x100376dc]
movss dword [esp + 0x18], xmm3
movss dword [esp + 0xc], xmm0
ja 0x1002cea6
movss xmm4, dword [0x10037988]
comiss xmm4, xmm1
jbe 0x1002cefc
comiss xmm2, xmm0
jbe 0x1002cebc
movaps xmm0, xmm1
mulss xmm0, dword [0x10037958]
movss dword [esp + 0xc], xmm0
fld dword [esp + 0xc]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x28]
xorps xmm2, xmm2
movss xmm3, dword [esp + 0x1c]
add esp, 4
comiss xmm2, xmm1
fstp dword [esp + 0xc]
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x10037900]
jbe 0x1002cef8
addss xmm1, xmm0
jmp 0x1002cefc
subss xmm1, xmm0
comiss xmm1, xmm2
movss xmm0, dword [0x1024405c]
movss dword [0x1025281c], xmm0
jbe 0x1002cf1a
mov dword [esi + 0x1c], 0xc3e10000
jmp 0x1002cf26
comiss xmm2, xmm1
jbe 0x1002cf26
mov dword [esi + 0x1c], 0x43e10000
andps xmm1, xmmword [0x100379f0]
comiss xmm3, xmm1
jae 0x1002cf3f
comiss xmm1, dword [0x10037874]
jb 0x1002d0a7
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm1, xmm0
movss xmm0, dword [esp + 0x14]
cvtps2pd xmm3, xmm0
xorps xmm0, xmm0
ucomisd xmm3, xmm0
lahf
test ah, 0x44
jp 0x1002cf68
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x1002cf8c
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atan2
mulsd xmm0, qword [0x10037838]
xorps xmm1, xmm1
xorps xmm2, xmm2
comisd xmm1, xmm0
jbe 0x1002cf8c
addsd xmm0, qword [0x10037848]
movss xmm4, dword [0x1024405c]
cvtsd2ss xmm0, xmm0
movaps xmm1, xmm4
subss xmm1, xmm0
movss dword [esp + 0x14], xmm0
comiss xmm1, dword [0x100378dc]
movaps xmm3, xmm1
movss dword [esp + 0x24], xmm1
mulss xmm3, dword [0x100376dc]
movss dword [esp + 0xc], xmm3
ja 0x1002cfd2
movss xmm5, dword [0x10037988]
comiss xmm5, xmm1
jbe 0x1002d030
comiss xmm2, xmm3
jbe 0x1002cfe8
movaps xmm0, xmm1
mulss xmm0, dword [0x10037958]
movss dword [esp + 0xc], xmm0
fld dword [esp + 0xc]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x28]
xorps xmm2, xmm2
movss xmm4, dword [0x1024405c]
add esp, 4
comiss xmm2, xmm1
fstp dword [esp + 0xc]
movss xmm0, dword [esp + 0xc]
mulss xmm0, dword [0x10037900]
jbe 0x1002d026
addss xmm1, xmm0
jmp 0x1002d02a
subss xmm1, xmm0
movss xmm0, dword [esp + 0x14]
movss xmm2, dword [0x10037860]
comiss xmm2, xmm1
jae 0x1002d059
comiss xmm2, dword [esp + 0x1c]
jae 0x1002d07e
addss xmm0, xmm2
movss dword [0x1024405c], xmm0
mov dword [esi + 0x1c], 0xc3e10000
jmp 0x1002d0a7
comiss xmm1, dword [0x1003796c]
jae 0x1002d07e
comiss xmm2, dword [esp + 0x1c]
jae 0x1002d07e
subss xmm0, xmm2
movss dword [0x1024405c], xmm0
mov dword [esi + 0x1c], 0x43e10000
jmp 0x1002d0a7
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm1
mulss xmm1, dword [0x10037904]
addss xmm0, xmm4
movss dword [0x1024405c], xmm0
movss dword [esi + 0x1c], xmm1
mov ecx, dword [esi + 0x24]
xorps xmm0, xmm0
and ecx, 0xfffff9e7
mov eax, ecx
or ecx, 0x200
or eax, 0x400
comiss xmm0, dword [esi + 0x1c]
cmovb ecx, eax
comiss xmm0, dword [esi + 0x18]
jb 0x1002d0d9
or ecx, 0x10
mov dword [esi + 0x24], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
or ecx, 8
mov dword [esi + 0x24], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret