Function at 0x4dac1b
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x5fbc0c
call fcn.0059d590
sub esp, 0x100
push ebx
push esi
lea eax, [ebp - 0x10c]
push edi
mov esi, ecx
push eax
xor edi, edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test byte [ebp - 0xfa], 0x80
je 0x4dac4b
push 4
pop edi
test byte [ebp - 0xfc], 0x80
je 0x4dac55
inc edi
test byte [ebp - 0xfb], 0x80
je 0x4dac60
inc edi
inc edi
test edi, edi
je case.default.0x4dacd4
imul edi, edi, 0x64
mov eax, dword [ebp + 8]
push 0xa
add edi, eax
pop ecx
mov ebx, 0x6901b8
xor eax, eax
mov edx, ebx
cmp dword [edx], edi
je 0x4dac87
inc eax
add edx, 4
cmp eax, 0xa
jl 0x4dac78
jmp 0x4dac8d
add eax, ecx
test eax, eax
jne 0x4dacab
add ecx, 0xa
add ebx, 0x28
cmp ecx, 0x50
jl 0x4dac74
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4
push 1
cmp eax, 0x2a
pop edi
jg 0x4daf4b
je 0x4daf3b
cmp eax, 0x12
jg 0x4dadd3
je 0x4dadb7
add eax, 0xfffffff6
cmp eax, 7
ja case.default.0x4dacd4
jmp dword [eax*4 + 0x4db115]
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xe6
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xd2
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xaa
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0x96
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xa0
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0x10e
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push edi
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xbe
jmp 0x4dae5c
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xc8
jmp 0x4dae5c
cmp eax, 0x1e
jg 0x4dae7d
je 0x4dae6d
sub eax, 0x13
je 0x4dae45
dec eax
je 0x4dae2a
dec eax
je 0x4dae0f
dec eax
jne case.default.0x4dacd4
lea ecx, [esi + 0x4c8]
call fcn.00456869
lea ecx, [esi + 0x122d0]
call fcn.0047f701
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456869
lea ecx, [esi + 0x122d0]
call fcn.0047f6aa
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456869
lea ecx, [esi + 0x122d0]
call fcn.0047f758
jmp 0x4db10d
push 0
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
call fcn.0041807c
or dword [ebp - 4], 0xffffffff
push 0xfa
call fcn.0051bd44
mov ecx, eax
call fcn.00516ff8
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456927
jmp 0x4db10d
sub eax, 0x1f
je 0x4daefb
sub eax, 9
je 0x4dae9e
dec eax
jne case.default.0x4dacd4
lea ecx, [esi + 0x4c8]
call fcn.00457b0b
jmp 0x4db10d
call fcn.0051bd44
mov eax, dword [eax + 0xca0]
sub eax, 0
je 0x4daeeb
dec eax
je 0x4daedb
dec eax
je 0x4daecb
dec eax
jne 0x4db10d
lea ecx, [esi + 0x3db9c]
call fcn.0047a957
jmp 0x4db10d
lea ecx, [esi + 0x3db9c]
call fcn.0047a9b1
jmp 0x4db10d
lea ecx, [esi + 0x3db9c]
call fcn.0047a993
jmp 0x4db10d
lea ecx, [esi + 0x3db9c]
call fcn.0047a975
jmp 0x4db10d
call dword [sym.imp.GraphicData.dll_GameDataSetQuery]
mov edi, eax
call fcn.0040311a
push 0
push 0
mov ebx, eax
mov eax, dword [edi]
push 0xff0000
push 0x7d5
push 0x2869
mov ecx, edi
call dword [eax + 0x3c]
push eax
mov ecx, ebx
call fcn.004d9a57
mov dword [esi + 0xacaf8], 4
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456cfc
jmp 0x4db10d
cmp eax, 0x37
jg 0x4db042
je 0x4db026
cmp eax, 0x33
jg 0x4dafe9
je 0x4dafcd
sub eax, 0x2b
je 0x4dafb2
dec eax
je 0x4dafa2
dec eax
je 0x4daf85
sub eax, 5
jne case.default.0x4dacd4
cmp dword [esi + 0x2e47c], 0
jmp 0x4db02c
cmp dword [esi + 0xacae4], 0
jne 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456c2d
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456b39
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.00456869
lea ecx, [esi + 0x122d0]
call fcn.0047f7af
jmp 0x4db10d
cmp dword [esi + 0x2e47c], edi
jne 0x4db10d
lea ecx, [esi + 0x2e418]
call fcn.00440279
jmp 0x4db10d
sub eax, 0x34
je 0x4db01e
dec eax
je 0x4db001
dec eax
jne case.default.0x4dacd4
cmp dword [esi + 0x2e47c], 2
jmp 0x4db02c
cmp dword [esi + 0x2e47c], 0
jne 0x4db10d
lea ecx, [esi + 0x2e418]
call fcn.00440210
jmp 0x4db10d
cmp dword [esi + 0x2e47c], edi
jmp 0x4db008
cmp dword [esi + 0x2e47c], edi
jne 0x4db10d
lea ecx, [esi + 0x2e418]
call fcn.004401b6
jmp 0x4db10d
cmp eax, 0x3f
jg 0x4db0c3
je 0x4db0b6
sub eax, 0x38
je 0x4db10d
sub eax, 4
je 0x4db099
dec eax
je 0x4db08c
dec eax
jne case.default.0x4dacd4
lea edi, [esi + 0x8c78c]
mov ecx, edi
call fcn.004a8f2e
neg al
sbb al, al
mov ecx, edi
inc al
push eax
call fcn.004a8f44
lea ecx, [esi + 0x4c8]
call fcn.004578fd
jmp 0x4db10d
lea ecx, [esi + 0x4c8]
call fcn.004571e5
jmp 0x4db10d
add esi, 0x8c718
mov ecx, esi
call fcn.004a8f2e
neg al
sbb al, al
mov ecx, esi
inc al
push eax
call fcn.004a8f44
jmp 0x4db10d
lea ecx, [esi + 0x31078]
call fcn.004953e4
jmp 0x4db10d
sub eax, 0x46
je 0x4db101
dec eax
je 0x4db0ed
dec eax
jne case.default.0x4dacd4
call fcn.0050ed28
mov esi, eax
mov ecx, esi
call fcn.0050ee89
test al, al
je 0x4db10d
mov ecx, esi
call fcn.0050ee5f
jmp 0x4db10d
call fcn.0050ed28
mov esi, eax
mov ecx, esi
call fcn.0050ee89
test al, al
jne 0x4db10d
jmp 0x4db0e4
call fcn.0050ed28
mov ecx, eax
call fcn.0050ef37
push 1
pop eax
jmp 0x4dac9a