Function at 0x10004cf0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x10042040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x10042fec], 0
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
je 0x10005191
cmp dword [0x10042f78], 0
je 0x10005191
push 0x30
call fcn.1003786b
add esp, 4
mov esi, eax
mov dword [ebp - 0x64], esi
lea eax, [ebp - 0x48]
mov dword [ebp - 0x64], esi
push 4
push eax
mov dword [esi + 0x2c], ebx
mov ecx, dword [edi]
push 0
push edi
call dword [ecx + 0x17c]
movss xmm0, dword [0x100420e8]
movss xmm2, dword [0x100420dc]
push dword [0x100420e0]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [0x10042098]
movss dword [ebp - 0x54], xmm2
movss dword [ebp - 0x4c], xmm0
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x10004d91
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [0x1003f1f8]
movss dword [ebp - 0x4c], xmm0
lea eax, [ebp - 0x48]
push eax
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixTranspose]
movss xmm4, dword [ebp - 0x54]
movss xmm7, dword [ebp - 0x50]
movaps xmm1, xmm4
movss xmm6, dword [ebp - 0x38]
movaps xmm0, xmm7
mulss xmm0, dword [ebp - 0x48]
movss xmm2, dword [ebp - 0x4c]
movss xmm3, dword [ebp - 0x28]
mulss xmm1, xmm6
movss xmm5, dword [ebp - 0x34]
movss dword [ebp - 0x4c], xmm3
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
movss xmm3, dword [ebp - 0x24]
movss dword [ebp - 0x58], xmm3
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [ebp - 0x44]
addss xmm1, dword [ebp - 0x18]
movss dword [ebp - 0x6c], xmm1
movaps xmm1, xmm4
mulss xmm1, xmm5
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
movss xmm3, dword [ebp - 0x2c]
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [ebp - 0x40]
movss xmm7, dword [ebp - 0x3c]
addss xmm1, dword [ebp - 0x14]
movss dword [ebp - 0x70], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [ebp - 0x30]
mulss xmm4, xmm3
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x20]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x50]
mulss xmm0, xmm7
addss xmm1, dword [ebp - 0x10]
addss xmm4, xmm0
movss xmm0, dword [ebp - 0x1c]
mulss xmm2, xmm0
movss dword [ebp - 0x60], xmm0
movss dword [ebp - 0x68], xmm1
movss xmm1, dword [0x1003f1e8]
addss xmm4, xmm2
movss xmm2, dword [0x1003f1e0]
mulss xmm6, xmm1
mulss xmm5, xmm1
movaps xmm0, xmm4
movss dword [ebp - 0x54], xmm4
addss xmm0, dword [ebp - 0xc]
mulss xmm7, xmm2
mulss xmm3, xmm1
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [ebp - 0x48]
mulss xmm0, xmm2
subss xmm0, xmm6
movss xmm6, dword [ebp - 0x4c]
movss dword [ebp - 0x5c], xmm0
xorps xmm0, xmm0
mulss xmm6, xmm0
addss xmm6, dword [ebp - 0x5c]
addss xmm6, dword [ebp - 0x18]
movss dword [ebp - 0x74], xmm6
movss xmm6, dword [ebp - 0x44]
mulss xmm6, xmm2
subss xmm6, xmm5
movss xmm5, dword [ebp - 0x58]
mulss xmm5, xmm0
addss xmm5, xmm6
movaps xmm4, xmm5
addss xmm4, dword [ebp - 0x14]
movss xmm1, dword [ebp - 0x60]
subss xmm7, xmm3
mulss xmm1, xmm0
movss xmm0, dword [0x1003f23c]
movss xmm5, dword [ebp - 0x60]
addss xmm1, xmm7
mulss xmm5, xmm0
addss xmm5, xmm7
addss xmm1, dword [ebp - 0xc]
addss xmm5, dword [ebp - 0xc]
movss dword [ebp - 0x78], xmm1
movss xmm1, dword [ebp - 0x4c]
mulss xmm1, xmm0
addss xmm1, dword [ebp - 0x5c]
addss xmm1, dword [ebp - 0x18]
movss dword [ebp - 0x4c], xmm1
movss xmm1, dword [ebp - 0x58]
mulss xmm1, xmm0
movss xmm0, dword [ebp - 0x68]
addss xmm1, xmm6
movaps xmm6, xmm1
addss xmm6, dword [ebp - 0x14]
movss dword [esi + 0x24], xmm0
movss xmm0, dword [ebp - 0xc]
comiss xmm0, dword [0x1003f228]
jbe 0x10005191
mov eax, dword [0x10042f5c]
xorps xmm0, xmm0
movss xmm3, dword [ebp - 0x6c]
divss xmm3, dword [ebp - 0x54]
shr eax, 1
cvtsi2sd xmm0, eax
shr eax, 0x1f
movss xmm2, dword [ebp - 0x4c]
divss xmm2, xmm5
addsd xmm0, qword [eax*8 + 0x1003f420]
mov eax, dword [0x10042f54]
divss xmm6, xmm5
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm3, xmm1
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
addss xmm3, xmm0
xorps xmm0, xmm0
addss xmm3, xmm1
movss dword [esi], xmm3
mov ecx, dword [0x10042f60]
mov eax, dword [0x10042f58]
movss xmm3, dword [ebp - 0x70]
divss xmm3, dword [ebp - 0x54]
shr ecx, 1
add eax, ecx
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
mulss xmm3, xmm0
xorps xmm0, xmm0
subss xmm1, xmm3
movss dword [esi + 4], xmm1
mov eax, dword [0x10042f5c]
shr eax, 1
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
mov eax, dword [0x10042f54]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm2, xmm1
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
movss dword [esi + 0x18], xmm2
mov ecx, dword [0x10042f60]
mov eax, dword [0x10042f58]
shr ecx, 1
add eax, ecx
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
mulss xmm6, xmm0
xorps xmm0, xmm0
subss xmm1, xmm6
movss dword [esi + 0x1c], xmm1
mov eax, dword [0x10042f5c]
shr eax, 1
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
movss xmm2, dword [ebp - 0x74]
divss xmm2, dword [ebp - 0x78]
mov eax, dword [0x10042f54]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm2, xmm1
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
movss dword [esi + 0xc], xmm2
movaps xmm2, xmm4
mov ecx, dword [0x10042f60]
mov eax, dword [0x10042f58]
divss xmm2, dword [ebp - 0x78]
shr ecx, 1
add eax, ecx
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
mulss xmm2, xmm0
subss xmm1, xmm2
movss dword [esi + 0x10], xmm1
mov eax, dword [0x100432a8]
cmp eax, dword [0x100432ac]
je 0x10005187
mov dword [eax], esi
add dword [0x100432a8], 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10037580
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x64]
push ecx
push eax
call fcn.1000acf0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10037580
mov esp, ebp
pop ebp
ret