Function at 0x10025610
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0x2c]
mov edx, dword [0x10132a40]
push ebx
push ebp
push esi
mov esi, dword [eax + edx*4]
mov ebx, ecx
mov eax, dword [0x10138604]
push edi
cmp eax, dword [esi + 4]
jle 0x10025680
push 0x10138604
call fcn.100d6f44
add esp, 4
cmp dword [0x10138604], 0xffffffff
jne 0x10025680
push 0x100d9630
mov dword [0x101385bc], 0
mov dword [0x101385b8], 0
mov dword [0x101385b4], 0
call fcn.100d6ea8
add esp, 4
push 0x10138604
call fcn.100d6ef3
add esp, 4
mov eax, dword [0x101385ec]
cmp eax, dword [esi + 4]
jle 0x100256db
push 0x101385ec
call fcn.100d6f44
add esp, 4
cmp dword [0x101385ec], 0xffffffff
jne 0x100256db
push 0x100d9620
mov dword [0x10138618], 0
mov dword [0x10138614], 0
mov dword [0x10138610], 0
call fcn.100d6ea8
add esp, 4
push 0x101385ec
call fcn.100d6ef3
add esp, 4
cmp byte [0x1013333c], 0
lea edi, [ebx + 0x30]
mov eax, dword [edi]
mov dword [0x10132ef4], eax
je 0x10025741
mov ecx, dword [0x10131384]
mov eax, dword [0x10133000]
cmp ecx, 3
ja case.0x10025702.0
jmp dword [ecx*4 + 0x10025948]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1002573a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1002573a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10025702.0
lea edi, [ebx + 0x30]
cmp byte [0x10133300], 0
je 0x10025924
mov ecx, dword [0x10132a7c]
push 0x10138610
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x10133348], 0
movss xmm0, dword [0x101385b4]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x101385b8]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x101385bc]
movss dword [ebx + 0x14], xmm0
je 0x100258ec
or dword [edi], 4
add ebx, 0x30
jmp 0x100258ee
mov ebp, dword [0x10132ac8]
test ebp, ebp
je 0x10025942
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x100257e4
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov dword [0x10132ac4], eax
cmp dword [eax + ebp], 0
jle 0x10025942
movss xmm0, dword [0x101385b4]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10025872
movss xmm0, dword [0x101385b8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10025872
movss xmm0, dword [0x101385bc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10025872
movss xmm0, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
movss dword [0x101385b4], xmm0
movss xmm0, dword [ebx + 0x10]
movss dword [0x101385b8], xmm0
movss xmm0, dword [ebx + 0x14]
movss dword [0x101385bc], xmm0
movq xmm0, qword [esp + 0x14]
movq qword [0x10138610], xmm0
mov dword [0x10138618], eax
mov ecx, dword [edi]
shr ecx, 2
and cl, 1
mov byte [0x10133348], cl
jmp 0x10025878
mov cl, byte [0x10133348]
xor eax, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [edi], 0
test cl, cl
je 0x1002589d
mov dword [edi], 4
mov eax, 4
cmp byte [0x10133308], 0
je 0x100258ab
or eax, 1
mov dword [edi], eax
cmp byte [0x101332f0], 0
je 0x100258b9
or eax, 0x20
mov dword [edi], eax
movss xmm0, dword [0x101385b4]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x101385b8]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x101385bc]
movss dword [ebx + 0x14], xmm0
mov byte [0x10133300], 1
pop edi
pop esi
pop ebp
pop ebx
ret
mov ebx, edi
cmp byte [0x10133308], 0
je 0x100258fc
or dword [edi], 1
mov edi, ebx
cmp byte [0x101332f0], 0
je 0x10025908
or dword [edi], 0x20
mov byte [0x10133348], 0
mov byte [0x10133308], 0
mov byte [0x101332f0], 0
mov byte [0x10133300], 0
mov dword [0x101385b4], 0
mov dword [0x101385b8], 0
mov dword [0x101385bc], 0
pop edi
pop esi
pop ebp
pop ebx
ret