Function at 0x4316b0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 8
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x4e4a4], 1
je 0x431a23
mov edi, dword [esp + 0x14]
mov ecx, 0xfffb1503
push ebx
mov ebx, dword [esp + 0x1c]
lea eax, [esi + 0x4eafd]
sub ecx, esi
push ebp
mov ebp, dword [esp + 0x28]
mov word [esi + 0x36070], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov al, byte [eax]
test al, al
je case.default.0x431707
movsx eax, al
dec eax
cmp eax, 0x25
ja case.default.0x431707
jmp dword [eax*4 + 0x431a2c]
push ebx
push edi
mov ecx, esi
call fcn.0045a310
jmp case.default.0x431707
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.004383c0
jmp case.default.0x431707
mov edx, dword [esp + 0x24]
mov ecx, esi
push edx
push ebx
push edi
call fcn.00464ae0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00436a90
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00436720
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.004368c0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00462080
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00463f70
jmp case.default.0x431707
push ebp
push ebx
push edi
mov ecx, esi
call fcn.00430b10
jmp case.default.0x431707
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.004373f0
jmp case.default.0x431707
mov ecx, dword [esp + 0x24]
push ebp
push ecx
push ebx
push edi
mov ecx, esi
call fcn.0046a9b0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.0045e200
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.0045ec30
jmp case.default.0x431707
mov edx, dword [esp + 0x24]
push ebp
push edx
push ebx
push edi
mov ecx, esi
call fcn.00459930
jmp case.default.0x431707
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.0046c6c0
jmp case.default.0x431707
mov ecx, dword [esp + 0x24]
push ecx
push ebx
push edi
mov ecx, esi
call fcn.00465690
jmp case.default.0x431707
mov ecx, esi
call fcn.00468800
jmp case.default.0x431707
mov edx, dword [esp + 0x24]
push ebp
push edx
push ebx
push edi
mov ecx, esi
call fcn.004362d0
jmp case.default.0x431707
push ebp
push ebx
push edi
mov ecx, esi
call fcn.0046efb0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00466180
jmp case.default.0x431707
push ebp
push ebx
push edi
mov ecx, esi
call fcn.00436e80
jmp case.default.0x431707
mov ecx, esi
call fcn.004405c0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00469f70
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00461e90
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00465d80
jmp case.default.0x431707
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.0046cc20
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00460530
jmp case.default.0x431707
movsx ecx, bx
movsx edx, di
push ecx
push edx
mov ecx, esi
call fcn.00468ad0
jmp case.default.0x431707
mov ecx, esi
call fcn.004360a0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00435ca0
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00469480
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00467470
jmp case.default.0x431707
push ebx
push edi
mov ecx, esi
call fcn.00475b60
jmp case.default.0x431707
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.0047e800
jmp case.default.0x431707
movsx edx, bx
movsx eax, di
push edx
push eax
mov ecx, esi
call fcn.0047deb0
jmp case.default.0x431707
movsx ecx, bx
movsx edx, di
push ecx
push edx
mov ecx, esi
call fcn.004779f0
jmp case.default.0x431707
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.0047a320
jmp case.default.0x431707
movsx edx, bx
movsx eax, di
push edx
push eax
mov ecx, esi
call fcn.0047b6e0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
add ecx, eax
mov dword [esp + 0x10], eax
cmp ecx, 0x29
jl 0x4316f0
mov ecx, esi
call fcn.0043ea80
mov cl, byte [eax + esi + 0x4eb8b]
mov eax, dword [esi + 0x4e5a4]
pop ebp
cmp cl, 0x64
pop ebx
jne 0x4319f1
test eax, eax
jle 0x431a23
push 0x12
call dword [sym.imp.user32.dll_GetAsyncKeyState]
and eax, 0xffff8000
test ax, ax
je 0x4319c4
mov edx, dword [esi + 0x4dd44]
mov ecx, dword [esi + 0x36178]
push 0x1e
push edx
push 3
push 0x1b7
push 0x170
call fcn.00489fc0
mov eax, dword [esi + 0x4e5a4]
lea edi, [esi + 0x4e763]
push eax
push 0x4a71a8
push edi
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push 0xc8
push 0xc8
push 0xdc
jmp 0x431a11
test eax, eax
jle 0x431a23
lea edi, [esi + 0x4e763]
push eax
push 0x4a71a8
push edi
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push 0xa
push 0xa
push 0xa
push edi
push 0x1c6
push 0x17c
mov ecx, esi
call fcn.004146e0
pop edi
pop esi
add esp, 8
ret 0x10