Function at 0x10002490
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x100bcc7e], 0
mov ecx, dword [0x384841ac]
push ebx
mov ebx, dword [0x38452e7c]
push esi
mov dword [ebp - 4], ebx
jne 0x1000250a
test ecx, ecx
je 0x10002503
push edi
mov edi, dword [ecx + 0x15e4]
xor edx, edx
test edi, edi
jle 0x10002502
mov ebx, dword [ecx + 0x15e0]
mov esi, dword [ebx + edx*4]
test esi, esi
je 0x100024fa
movd xmm0, dword [esi + 0x258]
mov eax, dword [esi + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [edx*4 + 0x100bcc88], eax
mov eax, dword [esi + 0x328]
mov dword [edx*4 + 0x100bebc8], eax
movss dword [edx*4 + 0x100c0b08], xmm0
inc edx
cmp edx, edi
jl 0x100024c5
mov ebx, dword [ebp - 4]
pop edi
mov byte [0x100bcc7e], 1
cmp byte [0x100bcc7c], 0
je 0x10002559
cmp byte [0x100bcc4b], 0
je 0x1000259a
test ecx, ecx
je 0x10002550
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002550
nop word [eax + eax]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002547
mov dword [eax + 0x2bc], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002530
mov byte [0x100bcc4b], 0
jmp 0x1000259a
cmp byte [0x100bcc4b], 0
jne 0x1000259a
test ecx, ecx
je 0x10002593
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002593
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1000258a
mov eax, dword [edx*4 + 0x100bcc88]
mov dword [esi + 0x2bc], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002570
mov byte [0x100bcc4b], 1
cmp byte [0x100bcc48], 0
je 0x100025e9
cmp byte [0x100bcc49], 0
je 0x1000262a
test ecx, ecx
je 0x100025e0
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100025e0
nop word [eax + eax]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100025d7
mov dword [eax + 0x328], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100025c0
mov byte [0x100bcc49], 0
jmp 0x1000262a
cmp byte [0x100bcc49], 0
jne 0x1000262a
test ecx, ecx
je 0x10002623
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002623
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1000261a
mov eax, dword [edx*4 + 0x100bebc8]
mov dword [esi + 0x328], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002600
mov byte [0x100bcc49], 1
cmp byte [0x100bcc7f], 0
je 0x10002679
cmp byte [0x100bcc80], 0
je 0x100026bc
test ecx, ecx
je 0x10002670
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002670
nop
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002667
mov dword [eax + 0x258], 1
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002650
mov byte [0x100bcc80], 0
jmp 0x100026bc
cmp byte [0x100bcc80], 0
jne 0x100026bc
test ecx, ecx
je 0x100026b5
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100026b5
mov eax, dword [ecx + 0x15e0]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x100026ac
cvttss2si eax, dword [edx*4 + 0x100c0b08]
mov dword [esi + 0x258], eax
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002690
mov byte [0x100bcc80], 1
test ecx, ecx
je 0x100026f0
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x100026f0
nop word [eax + eax]
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100026e7
mov dword [eax + 0x35c], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x100026d0
mov eax, dword [0x100e3dd8]
test eax, eax
jne 0x10002732
test ecx, ecx
je 0x10002789
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002789
nop
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x10002727
mov dword [eax + 0x308], 0
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002710
jmp 0x10002789
cmp eax, 1
jne 0x10002767
test ecx, ecx
je 0x10002789
xor edx, edx
cmp dword [ecx + 0x15e4], edx
jle 0x10002789
mov eax, dword [ecx + 0x15e0]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1000275c
mov dword [eax + 0x308], 0x3f800000
inc edx
cmp edx, dword [ecx + 0x15e4]
jl 0x10002745
jmp 0x10002789
cmp eax, 2
jne 0x10002789
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x10002789
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 1
cmp byte [0x100bcc4a], 0
jne 0x100027c9
test ebx, ebx
je 0x100027c2
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x150]
cvtdq2ps xmm0, xmm0
movss dword [0x100e3d88], xmm0
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x100e3d8c], xmm0
mov byte [0x100bcc4a], 1
cmp byte [0x100bcc7d], 0
mov eax, dword [ebx + 0x18]
pop esi
pop ebx
mov ecx, dword [eax + 0x10]
je 0x100027e8
mov dword [ecx + 0x148], 0xffffffff
mov esp, ebp
pop ebp
ret
cvttss2si eax, dword [0x100e3d8c]
mov dword [ecx + 0x148], eax
mov esp, ebp
pop ebp
ret