Function at 0x10033d29
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0x2c]
mov edx, dword [0x101c1730]
push ebx
push ebp
push esi
mov esi, dword [eax + edx*4]
mov ebx, ecx
mov eax, dword [0x101fd024]
push edi
cmp eax, dword [esi + 4]
jle 0x10033ca0
push 0x101fd024
call fcn.1010fdd4
add esp, 4
cmp dword [0x101fd024], 0xffffffff
jne 0x10033ca0
push 0x10113c30
mov dword [0x101fcf74], 0
mov dword [0x101fcf70], 0
mov dword [0x101fcf6c], 0
call fcn.1010fd38
add esp, 4
push 0x101fd024
call fcn.1010fd83
add esp, 4
mov eax, dword [0x101fcfc4]
cmp eax, dword [esi + 4]
jle 0x10033cfb
push 0x101fcfc4
call fcn.1010fdd4
add esp, 4
cmp dword [0x101fcfc4], 0xffffffff
jne 0x10033cfb
push 0x10113c20
mov dword [0x101fd044], 0
mov dword [0x101fd040], 0
mov dword [0x101fd03c], 0
call fcn.1010fd38
add esp, 4
push 0x101fcfc4
call fcn.1010fd83
add esp, 4
cmp byte [0x101f7bf2], 0
lea edi, [ebx + 0x30]
mov eax, dword [edi]
mov dword [0x101f2f68], eax
je 0x10033d61
mov ecx, dword [0x101be334]
mov eax, dword [0x101f793c]
cmp ecx, 3
ja case.0x10033d22.0
jmp dword [ecx*4 + 0x10033f68]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10033d5a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10033d5a
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10033d22.0
lea edi, [ebx + 0x30]
cmp byte [0x101f7ba8], 0
je 0x10033f44
mov ecx, dword [0x101c176c]
push 0x101fd03c
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x101f7c00], 0
movss xmm0, dword [0x101fcf6c]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x101fcf70]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x101fcf74]
movss dword [ebx + 0x14], xmm0
je 0x10033f0c
or dword [edi], 4
add ebx, 0x30
jmp 0x10033f0e
mov ebp, dword [0x101f764c]
test ebp, ebp
je 0x10033f62
mov eax, dword [0x101f7648]
test eax, eax
jne 0x10033e04
mov edx, 0xe80c2f78
mov ecx, 0x1014c9ed
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov dword [0x101f7648], eax
cmp dword [eax + ebp], 0
jle 0x10033f62
movss xmm0, dword [0x101fcf6c]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10033e92
movss xmm0, dword [0x101fcf70]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10033e92
movss xmm0, dword [0x101fcf74]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10033e92
movss xmm0, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
movss dword [0x101fcf6c], xmm0
movss xmm0, dword [ebx + 0x10]
movss dword [0x101fcf70], xmm0
movss xmm0, dword [ebx + 0x14]
movss dword [0x101fcf74], xmm0
movq xmm0, qword [esp + 0x14]
movq qword [0x101fd03c], xmm0
mov dword [0x101fd044], eax
mov ecx, dword [edi]
shr ecx, 2
and cl, 1
mov byte [0x101f7c00], cl
jmp 0x10033e98
mov cl, byte [0x101f7c00]
xor eax, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [edi], 0
test cl, cl
je 0x10033ebd
mov dword [edi], 4
mov eax, 4
cmp byte [0x101f7ba9], 0
je 0x10033ecb
or eax, 1
mov dword [edi], eax
cmp byte [0x101f7b98], 0
je 0x10033ed9
or eax, 0x20
mov dword [edi], eax
movss xmm0, dword [0x101fcf6c]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x101fcf70]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x101fcf74]
movss dword [ebx + 0x14], xmm0
mov byte [0x101f7ba8], 1
pop edi
pop esi
pop ebp
pop ebx
ret
mov ebx, edi
cmp byte [0x101f7ba9], 0
je 0x10033f1c
or dword [edi], 1
mov edi, ebx
cmp byte [0x101f7b98], 0
je 0x10033f28
or dword [edi], 0x20
mov byte [0x101f7c00], 0
mov byte [0x101f7ba9], 0
mov byte [0x101f7b98], 0
mov byte [0x101f7ba8], 0
mov dword [0x101fcf6c], 0
mov dword [0x101fcf70], 0
mov dword [0x101fcf74], 0
pop edi
pop esi
pop ebp
pop ebx
ret