Function at 0x463180
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x6ae654]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [0x6bfed8]
test esi, esi
jne 0x4631b2
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005a4e1e
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 8]
push edi
mov edi, dword [eax + 4]
mov dword [ebp - 0x54], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x58], 0
lea eax, [edi - 0x100]
cmp eax, 9
ja 0x4636cb
cmp dword [esi + 0x20], 0
je 0x4636cb
mov eax, ecx
movsx edx, cx
sar eax, 0x10
movzx eax, al
mov dword [ebp - 0x7c], eax
mov eax, ecx
shr eax, 0x18
and eax, 1
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x78], eax
mov eax, ecx
shr eax, 0x1d
and eax, 1
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], eax
mov eax, ecx
shr eax, 0x1e
and eax, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x70], eax
mov eax, ecx
push ebx
xor ebx, ebx
shr eax, 0x1f
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
lea eax, [ebx + 2]
cmp edi, 0x101
je 0x46328b
cmp edi, 0x105
je 0x46328b
cmp edx, 1
jne 0x463260
test ecx, 0x40000000
cmovne edx, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x80], edx
cmp edi, 0x100
je 0x46328b
cmp edi, 0x101
je 0x46328b
cmp edi, 0x104
je 0x46328b
cmp edi, 0x105
je 0x46328b
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x84], eax
jmp 0x4632aa
mov eax, dword [ebp - 0x54]
push ecx
push eax
call fcn.004dc4c0
movzx eax, al
push eax
call fcn.004dc260
movzx eax, al
add esp, 0xc
mov dword [ebp - 0x88], eax
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
mov eax, 2
push 0x11
cmovb ebx, eax
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x68], ebx
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x4632dd
or ebx, 4
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x68], ebx
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x4632f5
or ebx, 1
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x68], ebx
xor eax, eax
cmp edi, 0x100
jne 0x463308
mov dword [ebp - 0x3c], 1
jmp 0x46335d
cmp edi, 0x101
jne 0x463319
mov dword [ebp - 0x3c], 2
jmp 0x46335d
cmp edi, 0x102
jne 0x46332a
mov dword [ebp - 0x3c], 3
jmp 0x46335d
cmp edi, 0x104
jne 0x46333b
mov dword [ebp - 0x3c], 1
jmp 0x46335d
cmp edi, 0x105
jne 0x46334c
mov dword [ebp - 0x3c], 2
jmp 0x46335d
cmp edi, 0x106
mov ecx, 3
cmove eax, ecx
mov dword [ebp - 0x3c], eax
mov ebx, dword [esi + 0x8c]
push 1
mov dword [ebp - 0x48], 0
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
jne 0x4633b8
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
jne 0x4633b8
push 4
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
jne 0x4633b8
push 5
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
jne 0x4633b8
push 6
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
cmp dword [ebp - 0x3c], 1
jne 0x4634e1
mov ecx, dword [ebp - 0x88]
cmp ecx, 0x67
je 0x4633d2
cmp ecx, 0x68
jne 0x463432
test byte [ebp - 0x50], 4
mov ebx, 1
jne 0x4634a4
test eax, eax
jne 0x4634a4
cmp dword [ebp - 0x40], ebx
jne 0x4634a4
call fcn.00433970
test eax, eax
jne 0x4634a4
cmp dword [esi + 0x88], eax
je 0x46340f
cmp dword [esi + 0x8c], eax
jne 0x463432
mov eax, dword [esi + 0x24]
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
test eax, eax
je 0x463432
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], ebx
push ecx
push esi
mov dword [ebp - 0x40], ebx
call eax
add esp, 8
mov eax, dword [ebp - 0x3c]
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x463471
movups xmm0, xmmword [ebp - 0x8c]
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
movups xmm0, xmmword [ebp - 0x7c]
push eax
push esi
movups xmmword [ebp - 0x28], xmm0
movups xmm0, xmmword [ebp - 0x6c]
movups xmmword [ebp - 0x18], xmm0
call ecx
mov eax, dword [ebp - 8]
add esp, 8
mov dword [ebp - 0x58], eax
cmp edi, 0x100
je 0x463524
cmp edi, 0x101
je 0x46349d
cmp edi, 0x104
je 0x463524
cmp edi, 0x105
jne 0x463647
xor ecx, ecx
jmp 0x463529
cmp dword [esi + 0x8c], 0
mov eax, dword [esi + 0x88]
jne 0x463432
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x8c], ebx
test ecx, ecx
je 0x463432
neg eax
mov dword [ebp - 0x40], ebx
sbb eax, eax
add eax, 2
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
push eax
push esi
call ecx
jmp 0x46342f
mov eax, dword [ebp - 0x3c]
cmp eax, 2
jne 0x463517
mov ecx, dword [ebp - 0x88]
cmp ecx, 0x67
je 0x4634fd
cmp ecx, 0x68
jne 0x463435
xor ebx, ebx
cmp dword [esi + 0x88], ebx
je 0x463435
mov dword [ebp - 0x48], 1
jmp 0x463435
test eax, eax
je 0x463471
jmp 0x463435
mov ecx, 1
mov eax, dword [ebp - 0x54]
cmp al, 0x10
jne 0x463537
mov eax, 0x65
jmp 0x46355a
cmp al, 0x12
jne 0x463542
mov eax, 0x67
jmp 0x46355a
cmp al, 0x11
jne 0x46354d
mov eax, 0x69
jmp 0x46355a
cmp al, 0x20
jne 0x463647
mov eax, 0x5f
test ecx, ecx
je 0x4635dc
cmp eax, 0x65
je 0x4635c7
cmp eax, 0x67
je 0x4635ae
cmp eax, 0x69
je 0x463592
cmp eax, 0x5f
jne 0x463647
cmp dword [0x6bfef0], 0
jne 0x463647
mov dword [0x6bfef0], 1
jmp 0x463642
cmp dword [0x6bfeec], 0
jne 0x463647
mov dword [0x6bfeec], 1
jmp 0x463642
cmp dword [0x6bfee8], 0
jne 0x463647
mov dword [0x6bfee8], 1
jmp 0x463642
cmp dword [0x6bfee4], 0
jne 0x463647
mov dword [0x6bfee4], 1
jmp 0x463642
cmp eax, 0x65
je 0x46362f
cmp eax, 0x67
je 0x46361a
cmp eax, 0x69
je 0x463605
cmp eax, 0x5f
jne 0x463647
cmp dword [0x6bfef0], 0
je 0x463647
mov dword [0x6bfef0], 0
jmp 0x463642
cmp dword [0x6bfeec], 0
je 0x463647
mov dword [0x6bfeec], 0
jmp 0x463642
cmp dword [0x6bfee8], 0
je 0x463647
mov dword [0x6bfee8], 0
jmp 0x463642
cmp dword [0x6bfee4], 0
je 0x463647
mov dword [0x6bfee4], 0
call fcn.00499cd0
cmp dword [ebp - 0x48], 0
mov eax, dword [esi + 0x88]
je 0x463693
test eax, eax
jne 0x463669
cmp dword [esi + 0x8c], eax
je 0x463665
test ebx, ebx
jne 0x4636ca
jmp 0x463669
test ebx, ebx
je 0x4636ca
mov eax, dword [esi + 0x24]
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], ebx
test eax, eax
je 0x4636ca
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 2
push ecx
push esi
mov dword [ebp - 0x48], ebx
call eax
jmp 0x4636c7
cmp dword [esi + 0x8c], 0
je 0x4636a2
test ebx, ebx
jne 0x4636ca
jmp 0x4636a6
test ebx, ebx
je 0x4636ca
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x8c], ebx
test ecx, ecx
je 0x4636ca
neg eax
mov dword [ebp - 0x48], ebx
sbb eax, eax
add eax, 2
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x4c]
push eax
push esi
call ecx
add esp, 8
pop ebx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x58]
xor ecx, ebp
pop edi
pop esi
call fcn.005a4e1e
mov esp, ebp
pop ebp
ret