Function at 0x1003ad50
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 0x1003b15c
movss xmm0, dword [edi + 0xe0]
mov al, byte [0x11e394d4]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0xe4]
movss dword [esp + 0x10], xmm0
test al, al
je 0x1003ad9b
movss xmm0, dword [0x1004cf24]
jmp 0x1003ada3
movss xmm0, dword [0x1004d110]
test al, al
movss dword [esp + 0x20], xmm0
push 0x56
sete byte [0x11e394d4]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1003ae7d
cmp byte [0x10febd0b], 0
je 0x1003ae7d
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0xc]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1000ba40
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movsd xmm0, qword [0x1004cfa8]
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 [0x1004d058]
mulss xmm1, dword [0x1004d038]
movss dword [esp + 0x20], xmm1
mov eax, dword [esp + 0x20]
and eax, 0x7f800000
cmp eax, 0x7f800000
je 0x1003ae47
comiss xmm1, xmm0
ja 0x1003ae47
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x1003ae47
movaps xmm0, xmm1
movss xmm1, dword [0x1006d36c]
addss xmm1, xmm0
call fcn.10037be0
movaps xmm1, xmm0
movss dword [0x1006d36c], xmm0
call fcn.10037be0
movss dword [0x11dca1e4], xmm0
mov dword [esi + 0x1c], 0xc3e10000
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.1000bd10
test byte [eax], 1
jne 0x1003b15c
movss xmm0, dword [esi + 0x18]
comiss xmm0, dword [0x1004ce28]
jbe 0x1003aea2
mov dword [esi + 0x18], 0
movss xmm1, dword [esp + 0x10]
movaps xmm0, xmm1
mulss xmm0, xmm1
movss xmm1, dword [esp + 0xc]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1000ba40
movaps xmm1, xmm0
movss xmm0, dword [0x1004d000]
divss xmm0, xmm1
movss dword [esp + 0x1c], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atanf
movaps xmm1, xmm0
xorps xmm2, xmm2
mulss xmm1, dword [0x1004d038]
movss xmm0, dword [0x1004d058]
movss dword [esp + 0x14], xmm0
comiss xmm1, xmm0
ja 0x1003af0a
movaps xmm0, xmm1
maxss xmm0, xmm2
movss dword [esp + 0x14], xmm0
movss xmm1, dword [0x11dca1e4]
subss xmm1, dword [0x1006d360]
comiss xmm1, dword [0x1004d07c]
movaps xmm0, xmm1
movss dword [esp + 0x24], xmm1
mulss xmm0, dword [0x1004ce44]
ja 0x1003af41
movss xmm3, dword [0x1004d144]
comiss xmm3, xmm1
jbe 0x1003af86
comiss xmm2, xmm0
jbe 0x1003af4d
xorps xmm0, xmmword [0x1004d270]
push ecx
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
movss xmm1, dword [esp + 0x28]
xorps xmm2, xmm2
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
add esp, 4
comiss xmm2, xmm1
mulss xmm0, dword [0x1004d0a8]
jbe 0x1003af82
addss xmm1, xmm0
jmp 0x1003af86
subss xmm1, xmm0
comiss xmm1, xmm2
movss xmm0, dword [0x11dca1e4]
movss dword [0x1006d360], xmm0
jbe 0x1003afa4
mov dword [esi + 0x1c], 0xc3e10000
jmp 0x1003afb0
comiss xmm2, xmm1
jbe 0x1003afb0
mov dword [esi + 0x1c], 0x43e10000
andps xmm1, xmmword [0x1004d250]
movss xmm0, dword [esp + 0x14]
comiss xmm0, xmm1
jae 0x1003afcf
comiss xmm1, dword [0x1004d018]
jb 0x1003b129
movss xmm3, dword [esp + 0x10]
xorps xmm0, xmm0
movss xmm1, dword [esp + 0xc]
cvtps2pd xmm3, xmm3
cvtps2pd xmm1, xmm1
ucomisd xmm3, xmm0
lahf
test ah, 0x44
jp 0x1003aff8
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x1003b024
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_atan2
mulsd xmm0, qword [0x1004cfd0]
xorps xmm1, xmm1
xorps xmm2, xmm2
mulsd xmm0, qword [0x1004cf50]
comisd xmm1, xmm0
jbe 0x1003b024
addsd xmm0, qword [0x1004cfd8]
movss xmm1, dword [0x11dca1e4]
cvtsd2ss xmm0, xmm0
subss xmm1, xmm0
movss dword [esp + 0x10], xmm0
comiss xmm1, dword [0x1004d07c]
movaps xmm3, xmm1
movss dword [esp + 0x24], xmm1
mulss xmm3, dword [0x1004ce44]
ja 0x1003b061
movss xmm4, dword [0x1004d144]
comiss xmm4, xmm1
jbe 0x1003b0ac
comiss xmm2, xmm3
jbe 0x1003b06d
xorps xmm3, xmmword [0x1004d270]
push ecx
movss dword [esp], xmm3
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
movss xmm1, dword [esp + 0x28]
xorps xmm2, xmm2
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
add esp, 4
comiss xmm2, xmm1
mulss xmm0, dword [0x1004d0a8]
jbe 0x1003b0a2
addss xmm1, xmm0
jmp 0x1003b0a6
subss xmm1, xmm0
movss xmm0, dword [esp + 0x10]
movss xmm3, dword [0x1004d000]
comiss xmm3, xmm1
movss xmm4, dword [esp + 0x1c]
jae 0x1003b0d9
comiss xmm3, xmm4
jae 0x1003b0d9
addss xmm0, xmm3
movss dword [0x11dca1e4], xmm0
mov dword [esi + 0x1c], 0xc3e10000
jmp 0x1003b129
comiss xmm1, dword [0x1004d120]
jae 0x1003b0fc
comiss xmm3, xmm4
jae 0x1003b0fc
subss xmm0, xmm3
movss dword [0x11dca1e4], xmm0
mov dword [esi + 0x1c], 0x43e10000
jmp 0x1003b129
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm1
mulss xmm1, dword [0x1004d0b0]
addss xmm0, dword [0x11dca1e4]
movss dword [0x11dca1e4], xmm0
movss dword [esi + 0x1c], xmm1
and dword [esi + 0x24], 0xfffff9e7
comiss xmm2, dword [esi + 0x1c]
mov eax, dword [esi + 0x24]
jbe 0x1003b140
or eax, 0x200
jmp 0x1003b145
or eax, 0x400
comiss xmm2, dword [esi + 0x18]
mov dword [esi + 0x24], eax
jbe 0x1003b158
or dword [esi + 0x24], 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
or dword [esi + 0x24], 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret