Function at 0x439940
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x49c00c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
call fcn.0042f5b0
lea esi, [eax + 0xc]
call dword [sym.imp.USER32.dll_GetActiveWindow]
cmp dword [esi], eax
jne 0x439eb1
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
jne 0x439eb1
push 0x12
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
jne 0x439eb1
push 0x10
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x4399bb
movss xmm0, dword [0x486850]
jmp 0x4399c3
movss xmm0, dword [0x4868a8]
push 0x26
movss dword [ebp - 0x20], xmm0
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x4399ef
movss xmm0, dword [edi + 0x38]
subss xmm0, dword [ebp - 0x20]
movss dword [edi + 0x38], xmm0
jmp 0x439a9f
push 0x28
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x439a16
movss xmm0, dword [ebp - 0x20]
addss xmm0, dword [edi + 0x38]
movss dword [edi + 0x38], xmm0
jmp 0x439a9f
push 0x25
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x439a3a
movss xmm0, dword [edi + 0x34]
subss xmm0, dword [ebp - 0x20]
movss dword [edi + 0x34], xmm0
jmp 0x439a9f
push 0x27
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x439a5e
movss xmm0, dword [edi + 0x34]
addss xmm0, dword [ebp - 0x20]
movss dword [edi + 0x34], xmm0
jmp 0x439a9f
push 0x24
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x439a7d
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [ebp - 0x20]
jmp 0x439a9a
push 0x23
call esi
mov ecx, 0xff80
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x439a9f
movss xmm0, dword [edi + 0x30]
addss xmm0, dword [ebp - 0x20]
movss dword [edi + 0x30], xmm0
movss xmm3, dword [edi + 0x2c]
movaps xmm0, xmm3
call fcn.00404770
movss xmm1, dword [0x4867f8]
comiss xmm0, xmm1
movss xmm4, dword [0x4868b8]
ja 0x439ad4
movss xmm0, dword [edi + 0x30]
call fcn.00404770
comiss xmm0, xmm1
jbe 0x439c46
movss xmm0, dword [edi + 0x30]
movaps xmm1, xmm3
movaps xmm2, xmm0
divss xmm1, xmm4
divss xmm2, xmm4
subss xmm3, xmm1
movss dword [ebp - 0x20], xmm1
subss xmm0, xmm2
movss dword [ebp - 0x24], xmm2
movss dword [edi + 0x2c], xmm3
movss dword [edi + 0x30], xmm0
call fcn.00428220
movss xmm0, dword [ebp - 0x20]
mov esi, eax
mulss xmm0, dword [ebp + 8]
movss xmm2, dword [0x486898]
movss xmm1, dword [esi + 0x9c]
subss xmm1, xmm0
comiss xmm1, xmm2
movss dword [esi + 0x9c], xmm1
jbe 0x439b59
nop word [eax + eax]
movss xmm1, dword [esi + 0x9c]
subss xmm1, xmm2
comiss xmm1, xmm2
movss dword [esi + 0x9c], xmm1
ja 0x439b40
movss xmm3, dword [0x486968]
comiss xmm3, xmm1
jbe 0x439b89
nop word [eax + eax]
movss xmm0, dword [esi + 0x9c]
addss xmm0, xmm2
comiss xmm3, xmm0
movss dword [esi + 0x9c], xmm0
ja 0x439b70
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.00428710
mov eax, dword [esi]
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [esi + 0x50]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixLookAtRH]
call fcn.00428220
movss xmm0, dword [ebp - 0x24]
mov esi, eax
mulss xmm0, dword [ebp + 8]
movss xmm1, dword [0x4868b4]
mulss xmm0, dword [0x4868c8]
addss xmm0, dword [esi + 0xa4]
comiss xmm1, xmm0
movss dword [esi + 0xa4], xmm0
jbe 0x439bf7
mov dword [esi + 0xa4], 0x41a00000
jmp 0x439c0a
comiss xmm0, dword [0x48692c]
jbe 0x439c0a
mov dword [esi + 0xa4], 0x44fa0000
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.00428710
mov eax, dword [esi]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixLookAtRH]
movss xmm1, dword [0x4867f8]
movss xmm4, dword [0x4868b8]
movss xmm3, dword [edi + 0x34]
movaps xmm0, xmm3
call fcn.00404770
comiss xmm0, xmm1
ja 0x439c6b
movss xmm0, dword [edi + 0x38]
call fcn.00404770
comiss xmm0, xmm1
jbe 0x439dfb
movss xmm0, dword [edi + 0x38]
movaps xmm1, xmm3
movaps xmm2, xmm0
divss xmm1, xmm4
divss xmm2, xmm4
subss xmm3, xmm1
movss dword [ebp - 0x20], xmm1
subss xmm0, xmm2
movss dword [ebp - 0x24], xmm2
movss dword [edi + 0x34], xmm3
movss dword [edi + 0x38], xmm0
call fcn.00428220
movss xmm0, dword [ebp - 0x20]
mov esi, eax
mulss xmm0, dword [ebp + 8]
mov ecx, esi
mov edx, dword [esi]
mulss xmm0, dword [0x4868b4]
mov edx, dword [edx + 0xc]
movss dword [ebp - 0x20], xmm0
call edx
mov ecx, esi
movups xmm0, xmmword [eax + 0x30]
movups xmm1, xmmword [eax]
movups xmm2, xmmword [eax + 0x10]
movups xmm3, xmmword [eax + 0x20]
lea eax, [ebp - 0x1c]
movups xmmword [ebp - 0x34], xmm0
push eax
movss xmm0, dword [ebp - 0x20]
mulss xmm1, xmm0
mulss xmm2, xmm0
addss xmm1, dword [esi + 0x90]
mulss xmm3, xmm0
addss xmm2, dword [esi + 0x94]
addss xmm3, dword [esi + 0x98]
movss dword [esi + 0x90], xmm1
movss dword [esi + 0x94], xmm2
movss dword [esi + 0x98], xmm3
call fcn.00428710
mov eax, dword [esi]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixLookAtRH]
call fcn.00428220
movss xmm0, dword [ebp + 8]
mov esi, eax
xorps xmm0, xmmword [0x486b20]
mov ecx, esi
mulss xmm0, dword [ebp - 0x24]
mov edx, dword [esi]
mulss xmm0, dword [0x4868b4]
mov edx, dword [edx + 0xc]
movss dword [ebp - 0x24], xmm0
call edx
movss xmm4, dword [ebp - 0x24]
movups xmm0, xmmword [eax + 0x30]
movups xmm2, xmmword [eax + 0x10]
movups xmm3, xmmword [eax + 0x20]
movups xmmword [ebp - 0x34], xmm0
movaps xmm0, xmm4
shufps xmm2, xmm2, 0x55
mulss xmm0, dword [eax + 4]
shufps xmm3, xmm3, 0x55
addss xmm0, dword [esi + 0x90]
movss dword [esi + 0x90], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm2
mulss xmm4, xmm3
addss xmm0, dword [esi + 0x94]
movss dword [esi + 0x94], xmm0
addss xmm4, dword [esi + 0x98]
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
movss dword [esi + 0x98], xmm4
call fcn.00428710
mov eax, dword [esi]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixLookAtRH]
movss xmm1, dword [edi + 0x3c]
movaps xmm0, xmm1
call fcn.00404770
comiss xmm0, dword [0x4867fc]
jbe 0x439eb1
movaps xmm0, xmm1
divss xmm0, dword [0x4868b8]
subss xmm1, xmm0
movss dword [edi + 0x3c], xmm1
call fcn.00428220
movss xmm1, dword [edi + 0x3c]
mov esi, eax
xorps xmm1, xmmword [0x486b20]
mulss xmm1, dword [ebp + 8]
mulss xmm1, dword [0x486808]
addss xmm1, dword [esi + 0xa0]
comiss xmm1, dword [0x48687c]
movss dword [esi + 0xa0], xmm1
jbe 0x439e6e
mov dword [esi + 0xa0], 0x40490fb1
jmp 0x439e85
movss xmm0, dword [0x4867f0]
comiss xmm0, xmm1
jbe 0x439e85
mov dword [esi + 0xa0], 0x3727c5ac
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.00428710
mov eax, dword [esi]
lea ecx, [ebp - 0x10]
push ecx
mov ecx, esi
call dword [eax + 4]
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call dword [sym.imp.d3dx9_43.dll_D3DXMatrixLookAtRH]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.0046c079
mov esp, ebp
pop ebp
ret 4