Function at 0x10003cb0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
mov eax, dword [0x10051060]
xor eax, esp
mov dword [esp + 0x54], eax
push esi
mov esi, ecx
mov ecx, dword [0xb93530]
push edi
cmp ecx, 0x100000
jbe 0x1000443a
cmp dword [ecx + 0x4810], 0
je 0x1000443a
mov eax, dword [ecx + 0x6d9c]
xorps xmm0, xmm0
xorps xmm3, xmm3
movsd xmm4, qword [0x1004ba30]
cvtsi2sd xmm3, eax
shr eax, 0x1f
addsd xmm3, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x49cc]
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulsd xmm3, xmm4
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x49d0]
addsd xmm0, xmm4
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x6e10]
addsd xmm0, xmm4
lea eax, [eax + eax*2]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6d94], 0x15d
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6d98], 0x15d
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6da0], 0x15d
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6dd8], 0xb1
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6ddc], 0x2ee
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6db8], 0x23
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x6d8c]
addsd xmm3, xmm0
xorps xmm0, xmm0
lea eax, [eax + eax*4]
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x49d4], 0x15
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x6e14]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6da8], 0x27c
mulsd xmm0, qword [str.333333]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x6dac], 0x96
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x6db0]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [0x1082b14]
mulsd xmm0, qword [0x1004ba38]
lea eax, [eax + eax*4]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [0x1082b1c]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [0x1082b20]
mulsd xmm0, xmm4
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [0x1082b24], 0x15
mulsd xmm0, xmm4
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [0x1082b28]
addsd xmm3, xmm0
xorps xmm0, xmm0
lea eax, [eax + eax*2]
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [0x1082b2c]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [0x1082b30], 0xb1
mulsd xmm0, qword [str.333333]
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [0x1082b34], 0x2ee
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [0x1082b88], 0x15d
addsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
addsd xmm3, xmm0
imul eax, dword [0x1082b90], 0x15d
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x3ac]
addsd xmm3, xmm0
cvtsi2sd xmm1, eax
shr eax, 0x1f
cvtpd2ps xmm0, xmm3
addsd xmm1, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x3a4]
movss dword [esp + 0x14], xmm0
xorps xmm0, xmm0
lea eax, [eax + eax*4]
mulsd xmm1, xmm4
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x3b0]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x3b4], 0x15
mulsd xmm0, xmm4
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x3c0], 0xb1
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x3c4], 0x2ee
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x418], 0x15d
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x420], 0x15d
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x43c], 0x23
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x524], 0x27c
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
imul eax, dword [ecx + 0x528], 0x96
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
mov eax, dword [ecx + 0x560]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1004ba90]
cmp dword [0x100555f4], 0
mulsd xmm0, qword [0x1004ba38]
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x10], xmm0
jne 0x100041ed
push 0x100555f4
push esi
call dword [sym.imp.d3dx9_43.dll_D3DXCreateSprite]
cmp dword [0x1005564c], 0
jne 0x10004207
push 0x1005564c
push str.DataPA_PDPA_PD.dds
push esi
call dword [sym.imp.d3dx9_43.dll_D3DXCreateTextureFromFileA]
cmp dword [0x10055684], 0
jne 0x10004236
push 0x10055684
push str.Calibri
push 0
push 4
push 0
push 1
push 0
push 1
push 0x2bc
push 0
push 0xe
push esi
call dword [sym.imp.d3dx9_43.dll_D3DXCreateFontA]
lea ecx, [esp + 0x18]
call fcn.10003800
push 0x10055644
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0x10055644
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, dword [0x10055644]
test al, al
mov eax, dword [0x10055648]
mov esi, dword [0x10051ab4]
mov ecx, dword [0x10051ab0]
mov edi, dword [0x10051aac]
jns 0x10004302
movd xmm0, dword [0x1005364c]
movd xmm2, dword [0x10053c58]
cvtdq2ps xmm0, xmm0
movd xmm3, edx
addss xmm0, dword [esp + 0x18]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm2, xmm2
comiss xmm3, xmm0
addss xmm2, dword [esp + 0x1c]
jbe 0x10004302
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
movd xmm0, dword [0x10051aa8]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x10004302
movd xmm3, eax
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm2
jbe 0x10004302
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm1, xmm2
subss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x10004302
mov byte [0x10055650], 1
jmp 0x1000430f
cmp byte [0x10055650], 0
je 0x100043b2
movd xmm4, eax
mov eax, esi
sub eax, edi
movd xmm3, edx
cdq
sub eax, edx
sar eax, 1
cvtdq2ps xmm3, xmm3
push 1
movd xmm2, eax
mov eax, ecx
sub eax, dword [0x10051aa8]
cdq
sub eax, edx
movss dword [esp + 0x1c], xmm3
sar eax, 1
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm4, xmm4
movaps xmm0, xmm1
addss xmm0, xmm3
movss dword [esp + 0x20], xmm4
subss xmm0, xmm1
cvttss2si ecx, xmm0
movaps xmm0, xmm2
addss xmm0, xmm4
add ecx, 3
mov dword [esp + 0x28], ecx
sub ecx, dword [0x10051aa8]
add ecx, dword [0x10051ab0]
mov dword [esp + 0x30], ecx
subss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [esp + 0x2c], eax
sub eax, edi
add eax, esi
mov dword [esp + 0x34], eax
call dword [sym.imp.USER32.dll_GetKeyState]
test al, al
js 0x100043b2
lea eax, [esp + 0x24]
mov byte [0x10055650], 0
push eax
lea edx, [esp + 0x1c]
call fcn.10003220
add esp, 4
mov eax, dword [0x100555f4]
push 0x10
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
movq xmm0, qword [esp + 0x18]
lea edx, [esp + 0x34]
mov eax, dword [esp + 0x20]
push 0xffffffffffffffff
push edx
movq qword [esp + 0x3c], xmm0
lea edx, [esp + 0x48]
movups xmm0, xmmword [0x10051aa8]
mov dword [esp + 0x44], eax
mov eax, dword [0x100555f4]
push 0
push edx
push dword [0x1005564c]
movups xmmword [esp + 0x54], xmm0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
movups xmm1, xmmword [esp + 0x24]
sub esp, 0x10
movss xmm0, dword [esp + 0x20]
mov eax, esp
movups xmmword [eax], xmm1
call fcn.1003b6f0
movss xmm0, dword [esp + 0x24]
mov esi, eax
call fcn.1003b6f0
mov edx, esi
mov ecx, eax
call fcn.10002fe0
mov eax, dword [0x100555f4]
add esp, 0x10
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
xor ecx, esp
call fcn.1001bcac
mov esp, ebp
pop ebp
ret