Function at 0x47876b
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
push esi
lea eax, [ebp - 0x100]
push edi
mov esi, ecx
push eax
xor edi, edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test byte [ebp - 0xee], 0x80
je 0x478794
push 4
pop edi
test byte [ebp - 0xf0], 0x80
je 0x47879e
inc edi
test byte [ebp - 0xef], 0x80
je 0x4787a9
inc edi
inc edi
test edi, edi
je case.default.0x47880f
imul edi, edi, 0x64
mov eax, dword [ebp + 8]
push 0xa
add edi, eax
pop ecx
mov ebx, 0x5694b4
xor eax, eax
mov edx, ebx
cmp dword [edx], edi
je 0x4787d0
inc eax
add edx, 4
cmp eax, 0xa
jl 0x4787c1
jmp 0x4787d6
add eax, ecx
test eax, eax
jne 0x4787ea
add ecx, 0xa
add ebx, 0x28
cmp ecx, 0x50
jl 0x4787bd
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
push 1
cmp eax, 0x2a
pop ebx
jg 0x4789e5
je 0x4789d5
cmp eax, 0x12
jg 0x47888d
je 0x478882
add eax, 0xfffffff6
cmp eax, 7
ja case.default.0x47880f
jmp dword [eax*4 + 0x478bae]
push 0
push 0
push 0xe6
jmp 0x478904
push 0
push 0
push 0xd2
jmp 0x478904
push 0
push 0
push 0xaa
jmp 0x478904
push 0
push 0
push 0x96
jmp 0x478904
push 0
push 0
push 0xa0
jmp 0x478904
push 0
push 0
push 0x10e
jmp 0x478904
push 0
push 0
push ebx
jmp 0x478904
push 0
push 0
push 0xbe
jmp 0x478904
push 0
push 0
push 0xc8
jmp 0x478904
cmp eax, 0x1e
jg 0x478923
je 0x478913
sub eax, 0x13
je 0x4788fb
dec eax
je 0x4788e0
dec eax
je 0x4788c5
dec eax
jne case.default.0x47880f
lea ecx, [esi + 0x7e8]
call fcn.00436c48
lea ecx, [esi + 0x10a78]
call fcn.004498e5
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436c48
lea ecx, [esi + 0x10a78]
call fcn.0044988e
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436c48
lea ecx, [esi + 0x10a78]
call fcn.0044993c
jmp 0x478ba7
push 0
push 0
push 0xfa
mov ecx, 0x56b070
call fcn.004a6c15
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436cd5
jmp 0x478ba7
sub eax, 0x1f
je 0x47899b
sub eax, 9
je 0x478944
dec eax
jne case.default.0x47880f
lea ecx, [esi + 0x7e8]
call fcn.00437aa5
jmp 0x478ba7
mov eax, dword [0x56c23c]
sub eax, 0
je 0x47898b
dec eax
je 0x47897b
dec eax
je 0x47896b
dec eax
jne 0x478ba7
lea ecx, [esi + 0x2f794]
call fcn.004491b0
jmp 0x478ba7
lea ecx, [esi + 0x2f794]
call fcn.00449204
jmp 0x478ba7
lea ecx, [esi + 0x2f794]
call fcn.004491e8
jmp 0x478ba7
lea ecx, [esi + 0x2f794]
call fcn.004491cc
jmp 0x478ba7
call dword [sym.imp.GraphicData.dll_GameDataSetQuery]
mov edx, dword [eax]
push 0
push 0
push 0xff0000
push 0x7d5
push 0x2869
mov ecx, eax
call dword [edx + 0x3c]
push eax
mov ecx, 0x568f20
call fcn.0047cb64
mov dword [esi + 0x8b4e4], 4
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436fca
jmp 0x478ba7
cmp eax, 0x37
jg 0x478adc
je 0x478ac0
cmp eax, 0x33
jg 0x478a83
je 0x478a67
sub eax, 0x2b
je 0x478a4c
dec eax
je 0x478a3c
dec eax
je 0x478a1f
sub eax, 5
jne case.default.0x47880f
cmp dword [esi + 0x24468], 0
jmp 0x478ac6
cmp dword [esi + 0x8b4d0], 0
jne 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436f03
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436e67
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.00436c48
lea ecx, [esi + 0x10a78]
call fcn.00449993
jmp 0x478ba7
cmp dword [esi + 0x24468], ebx
jne 0x478ba7
lea ecx, [esi + 0x24404]
call fcn.0042bd2b
jmp 0x478ba7
sub eax, 0x34
je 0x478ab8
dec eax
je 0x478a9b
dec eax
jne case.default.0x47880f
cmp dword [esi + 0x24468], 2
jmp 0x478ac6
cmp dword [esi + 0x24468], 0
jne 0x478ba7
lea ecx, [esi + 0x24404]
call fcn.0042bcc6
jmp 0x478ba7
cmp dword [esi + 0x24468], ebx
jmp 0x478aa2
cmp dword [esi + 0x24468], ebx
jne 0x478ba7
lea ecx, [esi + 0x24404]
call fcn.0042bc70
jmp 0x478ba7
cmp eax, 0x3f
jg 0x478b5d
je 0x478b50
sub eax, 0x38
je 0x478ba7
sub eax, 4
je 0x478b33
dec eax
je 0x478b26
dec eax
jne case.default.0x47880f
lea edi, [esi + 0x6be74]
mov ecx, edi
call fcn.00460752
neg al
sbb al, al
mov ecx, edi
inc al
push eax
call fcn.00460771
lea ecx, [esi + 0x7e8]
call fcn.00437929
jmp 0x478ba7
lea ecx, [esi + 0x7e8]
call fcn.004373df
jmp 0x478ba7
add esi, 0x6bdcc
mov ecx, esi
call fcn.00460752
neg al
sbb al, al
mov ecx, esi
inc al
push eax
call fcn.00460771
jmp 0x478ba7
lea ecx, [esi + 0x27034]
call fcn.004575d1
jmp 0x478ba7
sub eax, 0x46
je 0x478b9b
dec eax
je 0x478b87
dec eax
jne case.default.0x47880f
call fcn.004a270a
mov esi, eax
mov ecx, esi
call fcn.004a2846
test al, al
je 0x478ba7
mov ecx, esi
call fcn.004a281c
jmp 0x478ba7
call fcn.004a270a
mov esi, eax
mov ecx, esi
call fcn.004a2846
test al, al
jne 0x478ba7
jmp 0x478b7e
call fcn.004a270a
mov ecx, eax
call fcn.004a28f1
mov eax, ebx
jmp 0x4787e3