Function at 0x5311b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x13a4]
xor ebx, ebx
cmp eax, ebx
je 0x531286
push 1
call fcn.0052f820
mov eax, dword [esi + 0x1568]
cmp eax, 0x22
je 0x531286
cmp eax, 0x23
je 0x531286
cmp dword [esi + 0x13a8], ebx
je 0x531286
mov ax, word [esi + 0x123e]
cmp ax, 6
je 0x531214
cmp ax, 2
je 0x531214
cmp ax, 7
je 0x531214
cmp ax, 0x14
je 0x531214
cmp ax, 0x18
jne 0x531286
push 0x53
mov dword [esi + 0x1560], 1
mov dword [esi + 0x1564], 1
mov dword [esi + 0x1570], ebx
mov dword [esi + 0x1574], ebx
call dword [sym.imp.user32.dll_GetAsyncKeyState]
shr eax, 8
test al, al
je 0x531271
mov ax, word [esi + 0x123e]
cmp ax, 2
je 0x53125c
cmp ax, 7
je 0x53125c
cmp ax, 0x14
jne 0x531271
push 0x23
push 0x23
mov ecx, esi
call fcn.00530670
pop esi
mov eax, 1
pop ebx
ret 8
push 0x22
push 0x22
mov ecx, esi
call fcn.00530670
pop esi
mov eax, 1
pop ebx
ret 8
cmp dword [esi + 0x1560], ebx
je 0x531559
push 1
mov ecx, esi
call fcn.0052f820
cmp dword [esi + 0x139c], ebx
mov dword [esi + 0x1294], ebx
je 0x5312ba
mov ecx, esi
call fcn.00530fa0
pop esi
mov eax, 1
pop ebx
ret 8
mov eax, dword [esp + 0xc]
cmp eax, 0xffffffff
mov ecx, dword [esp + 0x10]
jne 0x5313d9
cmp ecx, 0xffffffff
jne 0x5313d9
mov ecx, dword [esi + 0x1568]
lea eax, [ecx - 1]
cmp eax, 0x16
ja case.0x5312ed.2
movzx eax, byte [eax + 0x53157c]
jmp dword [eax*4 + 0x531560]
mov eax, 0xd
jmp 0x5313d9
mov eax, 0x10
jmp 0x5313d9
mov ax, word [esi + 0x123e]
cmp ax, 1
je 0x531331
cmp ax, 5
je 0x531331
cmp ax, 6
je 0x531331
cmp ax, 0x13
je 0x531331
cmp ax, 0x14
jne 0x531559
cmp dword [esi + 0x156c], 0x16
jne case.0x5312ed.5
mov dword [esi + 0x156c], ebx
mov eax, 0xe
jmp 0x5313d9
mov ax, word [esi + 0x123e]
cmp ax, 1
je 0x531373
cmp ax, 5
je 0x531373
cmp ax, 6
je 0x531373
cmp ax, 0x13
je 0x531373
cmp ax, 0x14
jne 0x531559
cmp dword [esi + 0x156c], 0x17
jne case.0x5312ed.6
mov dword [esi + 0x156c], ebx
mov eax, 0xf
jmp 0x5313d9
mov eax, dword [esi + 0x1268]
cmp eax, 5
ja case.default.0x531394
jmp dword [eax*4 + 0x531594]
mov eax, 2
mov ecx, eax
jmp 0x5313d9
mov eax, 0x11
mov ecx, eax
jmp 0x5313d9
mov eax, 0x12
mov ecx, eax
jmp 0x5313d9
mov eax, 0x13
mov ecx, eax
jmp 0x5313d9
mov eax, 0x1e
mov ecx, eax
jmp 0x5313d9
mov eax, 0x1f
mov ecx, eax
jmp 0x5313d9
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
push ecx
push eax
mov ecx, esi
call fcn.00530670
test eax, eax
je 0x531559
mov ecx, dword [esi + 0x1248]
shl ecx, 8
lea edx, [ecx + esi + 0xe3a]
test edx, edx
je 0x53154f
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
push edi
mov edi, 0x4000000
je 0x53142a
test dword [esi + 0x13c4], edi
push 0xffffffffffffffff
je 0x531420
push 0x3f19999a
jmp 0x531425
push 0x3f99999a
call fcn.00419130
mov eax, dword [esi + 0x1248]
shl eax, 8
lea ecx, [eax + esi + 0xe3a]
push ecx
call dword [0x8bd2cc]
add eax, 0xfffffffa
add esp, 4
cmp eax, 7
ja case.default.0x531450
jmp dword [eax*4 + 0x5315ac]
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
je case.default.0x531450
mov ax, word [esi + 0x123e]
cmp ax, 4
je 0x5314eb
cmp ax, 0xb
je 0x5314eb
cmp ax, 3
je 0x5314eb
cmp ax, 9
je 0x5314eb
cmp ax, 0xa
jne case.default.0x531450
jmp 0x5314eb
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
je case.default.0x531450
mov ax, word [esi + 0x123e]
cmp ax, 2
je 0x5314eb
cmp ax, 7
je 0x5314eb
cmp ax, 8
je 0x5314eb
cmp ax, 4
je 0x5314eb
cmp ax, 0xb
je 0x5314eb
cmp ax, 0xc
je 0x5314eb
cmp ax, 3
je 0x5314eb
cmp ax, 9
je 0x5314eb
cmp ax, 0xa
jne case.default.0x531450
jmp 0x5314eb
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
je case.default.0x531450
mov ax, word [esi + 0x123e]
cmp ax, 0xa
jne 0x53151f
test dword [esi + 0x13c4], edi
push 0xffffffffffffffff
je 0x53150a
push 0x3f000000
call fcn.00419130
pop edi
pop esi
mov eax, 1
pop ebx
ret 8
push 0x3f800000
call fcn.00419130
pop edi
pop esi
mov eax, 1
pop ebx
ret 8
cmp ax, 8
jne case.default.0x531450
test dword [esi + 0x13c4], edi
push 0xffffffffffffffff
je 0x531544
push 0x3f0ccccd
call fcn.00419130
pop edi
pop esi
mov eax, 1
pop ebx
ret 8
push 0x3f8ccccd
call fcn.00419130
pop edi
pop esi
mov eax, 1
pop ebx
ret 8
pop esi
xor eax, eax
pop ebx
ret 8