Function at 0x1004a36f
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x10157e8c]
sub esp, 0x80
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp dword [eax + 0xf9], ebx
je 0x1004a6d7
cmp dword [eax + 0x3e], ebx
je 0x1004a6d7
cmp dword [eax + 0x4a], 0xffffffff
je 0x1004a6d7
cmp dword [eax + 0x9986], ebx
jne 0x1004a6d7
call fcn.10029dc3
test eax, eax
jne 0x1004a6d7
cmp dword [0x1018d780], ebx
je 0x1004a6d7
cmp dword [0x10179594], ebx
je 0x1004a6d7
cmp dword [0x10179598], ebx
je 0x1004a6d7
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1004a3f7
cmp dword [0x1015ce07], ebx
jne 0x1004a6d7
mov eax, dword [0x101795ac]
cmp dword [eax], ebx
jne 0x1004a6d7
push 0x79
call esi
test ax, ax
js 0x1004a6d7
cmp dword [0x1018d794], ebx
je 0x1004a6d7
push dword [0x1018d79c]
call fcn.1002a067
pop ecx
test eax, eax
jne 0x1004a6d7
mov eax, dword [0x10157e8c]
push dword [eax + 0x4a]
call fcn.1003e9c3
push ebx
push 0xffffffffffffffff
mov esi, eax
call fcn.10029a24
add esp, 0xc
test esi, esi
je 0x1004a6d7
cmp eax, esi
je 0x1004a6d7
mov ecx, dword [0x1018d794]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebp, eax
test ebp, ebp
je 0x1004a6d7
mov ecx, dword [0x1011ded0]
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov esi, eax
mov ecx, esi
mov edi, dword [esi]
call dword [edi + 0x28]
movzx ecx, al
push ecx
mov ecx, esi
call dword [edi + 0x2c]
xor ebx, ebx
inc ebx
cmp ebx, 1
jl 0x1004a4a1
cmp ebx, 8
jle 0x1004a4cb
cmp ebx, 0x15
jl 0x1004a4ab
cmp ebx, 0x1a
jle 0x1004a4cb
cmp ebx, 0x1f
jl 0x1004a4b5
cmp ebx, 0x24
jle 0x1004a4cb
cmp ebx, 0x29
jl 0x1004a4bf
cmp ebx, 0x2c
jle 0x1004a4cb
lea eax, [ebx - 0x33]
cmp eax, 3
ja 0x1004a6cd
mov eax, dword [ebp]
lea ecx, [esp + 0x18]
and dword [esp + 0x18], 0
and dword [esp + 0x1c], 0
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
push ecx
push 8
mov ecx, ebp
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x24]
push ecx
push 0x2c
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x18]
lea eax, [esp + 0x30]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x68], xmm0
lea eax, [esp + 0x58]
movss xmm0, dword [esp + 0x30]
push eax
movss dword [esp + 0x70], xmm0
call fcn.10041674
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10041674
movss xmm0, dword [0x10074e84]
add esp, 0x10
comiss xmm0, dword [esp + 0x38]
ja 0x1004a6d7
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x74]
ja 0x1004a6d7
movss xmm0, dword [esp + 0x34]
lea edx, [esp + 0x48]
subss xmm0, dword [esp + 0x70]
mov ecx, dword [0x1018d79c]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
and dword [esp + 0x50], 0
cvtps2pd xmm2, xmm0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
mov eax, dword [ecx]
push edx
movss xmm0, dword [esp + 0x34]
subss xmm0, dword [esp + 0x70]
mulsd xmm2, xmm2
push 1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x10085c74]
movss dword [esp + 0x18], xmm0
mulss xmm0, dword [0x10074ea8]
movss dword [esp + 0x1c], xmm0
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x3c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x34]
mov ecx, dword [0x1018135c]
push 0
push 0xff009bff
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 8], xmm0
mulss xmm0, dword [0x10074ea8]
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x48]
subss xmm1, xmm0
movss dword [esp], xmm1
call fcn.1003fab3
mov eax, dword [0x10157e8c]
cmp dword [eax + 0xf5], 0
je 0x1004a6cd
push 0xff009bff
sub esp, 0xc
lea esi, [esp + 0x4c]
mov edi, esp
lea eax, [esp + 0x88]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10029329
add esp, 0x10
lea esi, [esp + 0x4c]
push eax
sub esp, 0xc
lea eax, [esp + 0x98]
mov edi, esp
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10029329
mov ecx, dword [0x1018135c]
add esp, 0x10
push eax
call fcn.1004003b
inc ebx
cmp ebx, 0x36
jle 0x1004a497
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret