Function at 0x483160
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x14
cmp word [eax + 0xc], 9
push ebx
push esi
push edi
mov edi, ecx
jne 0x48318e
mov eax, dword [eax]
cmp eax, dword [edi + 0x68]
jne 0x48318e
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
call dword [eax]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x12
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x11
mov dword [ebp - 4], eax
call esi
movzx ebx, ax
shr ebx, 0xf
push 0xa3
and bl, 1
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x10
mov dword [ebp - 0x10], eax
call esi
mov ecx, dword [ebp + 0xc]
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 8], eax
mov dword [ecx], 0
mov ecx, dword [ebp + 8]
mov byte [ebp - 0xc], al
movzx esi, word [ecx + 0xc]
cmp esi, 0x30
jb 0x483225
cmp esi, 0x39
ja 0x483225
cmp byte [ebp - 0x10], 0
jne 0x4831fb
mov ecx, dword [ebp - 4]
test cl, cl
je 0x483228
lea ecx, [esi - 0x30]
push ecx
mov ecx, edi
test al, al
je 0x483215
call fcn.00479300
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00479390
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
cmp esi, 0x71
je 0x483232
cmp esi, 0x70
jne 0x48325a
test cl, cl
je 0x48325a
test bl, bl
jne 0x48325a
test al, al
jne 0x48325a
mov ecx, dword [edi + 0x3c]
xor eax, eax
cmp esi, 0x70
setne al
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp esi, 0x78
jne 0x483270
test cl, cl
jne 0x483270
test bl, bl
jne 0x483270
test al, al
jne 0x483270
call fcn.00458320
mov esi, dword [ebp + 8]
movzx ecx, word [esi + 0xc]
cmp ecx, 0x72
jb 0x4832b4
cmp ecx, 0x7b
ja 0x4832b4
test bl, bl
je 0x4832b4
xor eax, eax
nop word [eax + eax]
cmp word [eax*8 + 0x691e88], cx
je 0x4832a2
inc eax
cmp eax, 5
jb 0x483290
jmp 0x4832b4
test eax, eax
js 0x4832b4
push dword [eax*8 + 0x691e8c]
mov ecx, edi
call fcn.0048b5b0
movzx ecx, word [esi + 0xc]
lea eax, [ecx - 8]
cmp eax, 0x73
ja case.0x4832cb.9
movzx eax, byte [eax + 0x4836f8]
jmp dword [eax*4 + 0x48368c]
lea ecx, [edi + 0x68]
mov byte [edi + 0x15c], 0
call fcn.00457950
mov dword [edi + 0x160], eax
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test al, al
jne case.0x4832cb.9
mov ecx, edi
call fcn.0048a0a0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test al, al
jne case.0x4832cb.9
push 0
mov ecx, edi
call fcn.00481950
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
mov ecx, edi
test al, al
jne 0x48337f
push 1
call fcn.00481950
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00489d40
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov ecx, dword [edi + 0x3c]
push dword [ebp - 0xc]
push 0
mov eax, dword [ecx]
call dword [eax + 8]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov ecx, dword [edi + 0x3c]
push dword [ebp - 0xc]
push 1
mov eax, dword [ecx]
call dword [eax + 8]
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test al, al
jne case.0x4832cb.9
mov ecx, edi
call fcn.004899d0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 8]
mov ecx, edi
xor al, 1
push 0
movzx eax, al
push eax
call fcn.00488c00
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test bl, bl
je 0x48345a
test al, al
jne case.0x4832cb.9
mov ecx, edi
call fcn.00486320
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test al, al
je 0x483470
mov ecx, edi
call fcn.00486530
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [edi + 0x83], 0
je case.0x4832cb.9
mov ecx, edi
call fcn.0048a730
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 8]
test al, al
je case.0x4832cb.9
mov ecx, edi
call fcn.0048a680
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
je case.0x4832cb.40
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x10]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
je case.0x4832cb.40
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
call dword [eax + 0x14]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
cmp byte [ebp - 4], 0
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test al, al
jne case.0x4832cb.9
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
je 0x483520
push 1
mov ecx, edi
call fcn.0048aab0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 8]
test al, al
jne 0x48357a
test bl, bl
jne 0x483534
push 1
mov ecx, edi
call fcn.0048a900
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
mov ecx, edi
push 0
jne 0x483510
mov eax, dword [ebp - 8]
test al, al
je 0x48352f
call fcn.0048ad20
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, edi
call fcn.0047a5a0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
push 1
mov ecx, edi
call fcn.0048ad20
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.004862f0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.00486320
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.00486530
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.00489d40
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.00482a70
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
mov ecx, edi
call fcn.0048a0e0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
je case.0x4832cb.9
lea eax, [ecx - 0x31]
mov ecx, edi
push eax
call fcn.00470580
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, edi
call fcn.0048ad60
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [ebp - 4], 0
je case.0x4832cb.9
test bl, bl
jne case.0x4832cb.9
mov eax, dword [ebp - 8]
test al, al
jne case.0x4832cb.9
mov ecx, edi
call fcn.0047a380
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8