Function at 0x10002280
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x10047fd3], 0
mov ecx, dword [0x384841ac]
push ebx
mov ebx, dword [0x38452e7c]
mov dword [ebp - 4], ebx
jne 0x100022a4
mov byte [0x10047fd3], 1
cmp byte [0x10047fe6], 0
push esi
jne 0x1000230a
test ecx, ecx
je 0x10002303
push edi
mov edi, dword [ecx + 0x15e4]
xor edx, edx
test edi, edi
jle 0x10002302
mov ebx, dword [ecx + 0x15e0]
mov esi, dword [ebx + edx*4]
test esi, esi
je 0x100022fa
movd xmm0, dword [esi + 0x258]
mov eax, dword [esi + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [edx*4 + 0x10047ff0], eax
mov eax, dword [esi + 0x328]
mov dword [edx*4 + 0x10049f30], eax
movss dword [edx*4 + 0x1004be70], xmm0
inc edx
cmp edx, edi
jl 0x100022c5
mov ebx, dword [ebp - 4]
pop edi
mov byte [0x10047fe6], 1
cmp byte [0x10047fe4], 0
je 0x10002362
cmp byte [0x10047fd2], 0
je 0x100023aa
test ecx, ecx
je 0x10002359
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002359
mov esi, dword [0x10047fdc]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002350
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [eax + 0x2bc], xmm0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002334
mov byte [0x10047fd2], 0
jmp 0x100023aa
cmp byte [0x10047fd2], 0
jne 0x100023aa
test ecx, ecx
je 0x100023a3
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100023a3
nop dword [eax]
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1000239a
mov eax, dword [edx*4 + 0x10047ff0]
mov dword [esi + 0x2bc], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002380
mov byte [0x10047fd2], 1
cmp byte [0x10047fd0], 0
je 0x10002407
cmp byte [0x10047fd1], 0
je 0x1000244a
test ecx, ecx
je 0x100023fe
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100023fe
movss xmm0, dword [0x10047fe0]
nop word [eax + eax]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100023f5
movss dword [eax + 0x328], xmm0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100023e0
mov byte [0x10047fd1], 0
jmp 0x1000244a
cmp byte [0x10047fd1], 0
jne 0x1000244a
test ecx, ecx
je 0x10002443
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002443
nop
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1000243a
mov eax, dword [edx*4 + 0x10049f30]
mov dword [esi + 0x328], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002420
mov byte [0x10047fd1], 1
cmp byte [0x10047fe7], 0
je 0x10002499
cmp byte [0x10047fe8], 0
je 0x100024dc
test ecx, ecx
je 0x10002490
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002490
nop
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002487
mov dword [eax + 0x258], 1
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002470
mov byte [0x10047fe8], 0
jmp 0x100024dc
cmp byte [0x10047fe8], 0
jne 0x100024dc
test ecx, ecx
je 0x100024d5
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100024d5
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x100024cc
cvttss2si eax, dword [edx*4 + 0x1004be70]
mov dword [esi + 0x258], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100024b0
mov byte [0x10047fe8], 1
pop esi
test ecx, ecx
je 0x10002510
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002510
nop dword [eax + eax]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002507
mov dword [eax + 0x35c], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100024f0
mov eax, dword [0x1006f0f0]
test eax, eax
jne 0x10002552
test ecx, ecx
je 0x100025a9
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100025a9
nop
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002547
mov dword [eax + 0x308], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002530
jmp 0x100025a9
cmp eax, 1
jne 0x10002587
test ecx, ecx
je 0x100025a9
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100025a9
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1000257c
mov dword [eax + 0x308], 0x3f800000
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002565
jmp 0x100025a9
cmp eax, 2
jne 0x100025a9
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x100025a9
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x10047fe5], 0
je 0x100025c2
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x148], 0xffffffff
cmp byte [0x1006f143], 0
je 0x100025dc
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [0x1006f160]
mov dword [ecx + 0x214], eax
pop ebx
mov esp, ebp
pop ebp
ret