Function at 0x10047ad1
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x10154014]
sub esp, 0x80
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp dword [eax + 0xf8], ebx
je 0x10047e39
cmp dword [eax + 0x3e], ebx
je 0x10047e39
cmp dword [eax + 0x4a], 0xffffffff
je 0x10047e39
cmp dword [eax + 0x9985], ebx
jne 0x10047e39
call fcn.10029a0a
test eax, eax
jne 0x10047e39
cmp dword [0x101898a0], ebx
je 0x10047e39
cmp dword [0x1017571c], ebx
je 0x10047e39
cmp dword [0x10175720], ebx
je 0x10047e39
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x10047b59
cmp dword [0x10158f8f], ebx
jne 0x10047e39
mov eax, dword [0x10175734]
cmp dword [eax], ebx
jne 0x10047e39
push 0x79
call esi
test ax, ax
js 0x10047e39
cmp dword [0x101898b4], ebx
je 0x10047e39
push dword [0x101898bc]
call fcn.10029cae
pop ecx
test eax, eax
jne 0x10047e39
mov eax, dword [0x10154014]
push dword [eax + 0x4a]
call fcn.1003e298
push ebx
push 0xffffffffffffffff
mov esi, eax
call fcn.1002966b
add esp, 0xc
test esi, esi
je 0x10047e39
cmp eax, esi
je 0x10047e39
mov ecx, dword [0x101898b4]
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 0x10047e39
mov ecx, dword [0x1011a05c]
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 0x10047c03
cmp ebx, 8
jle 0x10047c2d
cmp ebx, 0x15
jl 0x10047c0d
cmp ebx, 0x1a
jle 0x10047c2d
cmp ebx, 0x1f
jl 0x10047c17
cmp ebx, 0x24
jle 0x10047c2d
cmp ebx, 0x29
jl 0x10047c21
cmp ebx, 0x2c
jle 0x10047c2d
lea eax, [ebx - 0x33]
cmp eax, 3
ja 0x10047e2f
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.10040e82
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10040e82
movss xmm0, dword [0x10071e74]
add esp, 0x10
comiss xmm0, dword [esp + 0x38]
ja 0x10047e39
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x74]
ja 0x10047e39
movss xmm0, dword [esp + 0x34]
lea edx, [esp + 0x48]
subss xmm0, dword [esp + 0x70]
mov ecx, dword [0x101898bc]
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 [0x1007fac8]
movss dword [esp + 0x18], xmm0
mulss xmm0, dword [0x10071e9c]
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 [0x1017d4e4]
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 [0x10071e9c]
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x48]
subss xmm1, xmm0
movss dword [esp], xmm1
call fcn.1003f441
mov eax, dword [0x10154014]
cmp dword [eax + 0xf4], 0
je 0x10047e2f
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.10028f70
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.10028f70
mov ecx, dword [0x1017d4e4]
add esp, 0x10
push eax
call fcn.1003f97d
inc ebx
cmp ebx, 0x36
jle 0x10047bf9
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret