Function at 0x100430a4
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x10151388]
sub esp, 0xfc
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp dword [eax + 0x10d], ebx
jne 0x100435c2
call fcn.1002a149
test eax, eax
jne 0x100435c2
cmp dword [0x10188298], ebx
je 0x100435c2
cmp dword [0x1017aac8], ebx
je 0x100435c2
cmp dword [0x1017aacc], ebx
je 0x100435c2
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1004310d
cmp dword [0x1015e330], ebx
jne 0x100435c2
mov eax, dword [0x1017aae0]
cmp dword [eax], ebx
jne 0x100435c2
push 0x79
call esi
test ax, ax
js 0x100435c2
cmp dword [0x101882ac], ebx
je 0x100435c2
push dword [0x101882b4]
call fcn.1002a3ed
pop ecx
test eax, eax
jne 0x100435c2
mov eax, dword [0x10151388]
push dword [eax + 0x54e5]
call fcn.1003f268
push ebx
push 0xffffffffffffffff
mov esi, eax
call fcn.10029da6
add esp, 0xc
test esi, esi
je 0x100435c2
cmp eax, esi
je 0x100435c2
mov ecx, dword [0x101882ac]
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 0x100435c2
mov ecx, dword [0x101173d4]
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
mov esi, 0xff960000
inc ebx
cmp ebx, 1
jl 0x100431bf
cmp ebx, 8
jle 0x100431e9
cmp ebx, 0x15
jl 0x100431c9
cmp ebx, 0x1a
jle 0x100431e9
cmp ebx, 0x1f
jl 0x100431d3
cmp ebx, 0x24
jle 0x100431e9
cmp ebx, 0x29
jl 0x100431dd
cmp ebx, 0x2c
jle 0x100431e9
lea eax, [ebx - 0x33]
cmp eax, 3
ja 0x100435b8
mov eax, dword [ebp]
lea ecx, [esp + 0x40]
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
push ecx
push 8
mov ecx, ebp
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x4c]
push ecx
push 0x2c
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x40]
lea eax, [esp + 0x34]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x50]
push eax
movss dword [esp + 0x6c], xmm0
lea eax, [esp + 0x5c]
movss xmm0, dword [esp + 0x58]
push eax
movss dword [esp + 0x74], xmm0
call fcn.10006be3
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10006be3
movss xmm0, dword [0x100783d0]
add esp, 0x10
comiss xmm0, dword [esp + 0x3c]
ja 0x100435c2
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x78]
ja 0x100435c2
movss xmm0, dword [esp + 0x34]
movaps xmm1, xmm0
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esp + 0x74]
subss xmm1, dword [esp + 0x70]
mov eax, dword [0x10151388]
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
mulss xmm0, xmm0
and dword [esp + 0x30], 0
mulss xmm1, xmm1
and dword [esp + 0x1c], 0
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
addss xmm0, xmm1
mov ecx, dword [eax + 0x54e5]
mov eax, dword [0x1017aacc]
sqrtss xmm0, xmm0
mov eax, dword [eax + ecx*4 + 0x26]
mov eax, dword [eax + 8]
movzx eax, byte [eax + 0x1a]
mulss xmm0, dword [0x10089ab4]
movss dword [esp + 0x10], xmm0
mulss xmm0, dword [0x10078414]
movss dword [esp + 0x14], xmm0
sub eax, 0
je 0x100434db
sub eax, 0x11
je 0x10043493
sub eax, 1
je 0x10043448
sub eax, 1
je 0x100433fd
sub eax, 0xd
je 0x100433b2
sub eax, 1
jne 0x10043593
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0x8c]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0x90]
jmp 0x10043521
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0xa4]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0xa8]
jmp 0x10043521
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 7
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0xbc]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0xc0]
jmp 0x10043521
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 7
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0xd4]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0xd8]
jmp 0x10043521
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0xec]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0xf0]
jmp 0x10043521
mov ecx, dword [0x101882b4]
lea edx, [esp + 0x28]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x2c]
mov edi, esp
lea eax, [esp + 0x104]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002974e
add esp, 0x10
push eax
lea eax, [esp + 0x108]
sub esp, 0xc
lea esi, [esp + 0x3c]
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.1002974e
mov ecx, dword [0x10182868]
add esp, 0x10
push eax
call fcn.100408dd
movss xmm0, dword [esp + 0x10]
mov esi, 0xff960000
movss xmm1, dword [esp + 0x38]
mov ecx, dword [0x10182868]
push 0
push esi
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 8], xmm0
mulss xmm0, dword [0x10078414]
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x30]
subss xmm1, xmm0
movss dword [esp], xmm1
call fcn.10040353
mov ecx, dword [0x10182868]
push 0
push 0x1c
sub esp, 0x10
and dword [esp + 0xc], 0
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
call fcn.10040353
inc ebx
cmp ebx, 0x36
jle 0x100431b5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret