Function at 0x64b9f4
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, ecx
xor ebx, ebx
cmp byte [esi + 0x1ab], bl
push 0x14
pop edi
je 0x64baaf
push 1
call fcn.0064a135
mov eax, dword [esi + 0x160]
cmp eax, 0x22
je 0x64baaf
cmp eax, 0x23
je 0x64baaf
cmp byte [esi + 0x1ad], bl
je 0x64baaf
mov ax, word [esi + 0x126]
cmp ax, 6
je 0x64ba58
cmp ax, 2
je 0x64ba58
cmp ax, 7
je 0x64ba58
cmp ax, di
je 0x64ba58
cmp ax, 0x18
jne 0x64baaf
push 0x53
mov byte [esi + 0x166], 1
mov byte [esi + 0x167], 1
mov byte [esi + 0x164], bl
mov byte [esi + 0x165], bl
call dword [sym.imp.user32.dll_GetAsyncKeyState]
shr eax, 8
test al, al
je 0x64ba9f
mov ax, word [esi + 0x126]
cmp ax, 2
je 0x64ba99
cmp ax, 7
je 0x64ba99
cmp ax, di
jne 0x64ba9f
push 0x23
push 0x23
jmp 0x64baa3
push 0x22
push 0x22
mov ecx, esi
call fcn.0064b451
jmp 0x64bd33
cmp byte [esi + 0x166], bl
je 0x64bd37
push 1
mov ecx, esi
call fcn.0064a135
fldz
cmp byte [esi + 0x1ac], bl
fstp dword [esi + 0x144]
je 0x64bae0
mov ecx, esi
call fcn.0064b7ad
jmp 0x64bd33
mov eax, dword [ebp + 8]
cmp eax, 0xffffffff
mov ecx, dword [ebp + 0xc]
jne 0x64bc05
cmp ecx, 0xffffffff
jne 0x64bc05
mov ecx, dword [esi + 0x160]
mov eax, ecx
dec eax
je 0x64bbfb
sub eax, 3
je 0x64bbf4
dec eax
je 0x64bbec
dec eax
je 0x64bbe5
dec eax
dec eax
je 0x64bbfb
sub eax, 0xe
je 0x64bba9
dec eax
je 0x64bb6e
mov eax, dword [esi + 0x134]
sub eax, ebx
je 0x64bb65
dec eax
je 0x64bb61
dec eax
je 0x64bb5d
dec eax
je 0x64bb59
dec eax
je 0x64bb55
dec eax
jne 0x64bbff
push 0x1f
pop ecx
mov eax, ecx
jmp 0x64bc05
push 0x1e
jmp 0x64bb4d
push 0x13
jmp 0x64bb4d
push 0x12
jmp 0x64bb4d
push 0x11
jmp 0x64bb4d
push 2
pop eax
push eax
jmp 0x64bbf1
mov ax, word [esi + 0x126]
cmp ax, 1
je 0x64bb96
cmp ax, 5
je 0x64bb96
cmp ax, 6
je 0x64bb96
cmp ax, 0x13
je 0x64bb96
cmp ax, di
jne 0x64bd37
push 0x17
lea eax, [esi + 0x15c]
pop ecx
cmp dword [eax], ecx
jne 0x64bba5
mov dword [eax], ebx
push 0xf
jmp 0x64bbe2
mov ax, word [esi + 0x126]
cmp ax, 1
je 0x64bbd1
cmp ax, 5
je 0x64bbd1
cmp ax, 6
je 0x64bbd1
cmp ax, 0x13
je 0x64bbd1
cmp ax, di
jne 0x64bd37
push 0x16
lea eax, [esi + 0x15c]
pop ecx
cmp dword [eax], ecx
jne 0x64bbe0
mov dword [eax], ebx
push 0xe
pop eax
jmp 0x64bc05
push 0xf
pop eax
push 6
jmp 0x64bbf1
push 0xe
pop eax
push 5
pop ecx
jmp 0x64bc05
push 0x10
pop eax
push 4
jmp 0x64bbf1
push 0xd
jmp 0x64bbe2
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
push ecx
push eax
mov ecx, esi
call fcn.0064b451
test al, al
je 0x64bd37
mov eax, dword [esi + 0x120]
cmp dword [esi + eax*4 + 0xec], ebx
je 0x64bd33
cmp dword [esi + 0x48], ebx
push 0x1b
pop edi
je 0x64bc5d
mov ecx, dword [esi + 0x1cc]
push edi
call fcn.0064dd98
test al, al
push 0xffffffffffffffff
push ecx
mov ecx, dword [esi + 0x48]
je 0x64bc4f
fld dword [0x6eeeb0]
jmp 0x64bc55
fld dword [0x6d11fc]
fstp dword [esp]
call fcn.00413ad7
mov eax, dword [esi + 0x120]
push dword [esi + eax*4 + 0xec]
call dword [0x14dec70]
cmp eax, 6
pop ecx
jb 0x64bd33
cmp eax, 8
jbe 0x64bcdd
cmp eax, 0xb
jbe 0x64bca9
cmp eax, 0xd
ja 0x64bd33
cmp dword [esi + 0x48], ebx
je 0x64bd33
mov ax, word [esi + 0x126]
cmp ax, 0xa
je 0x64bd07
cmp ax, 8
jmp 0x64bd05
cmp dword [esi + 0x48], ebx
je 0x64bd33
mov ax, word [esi + 0x126]
cmp ax, 2
je 0x64bd07
cmp ax, 7
je 0x64bd07
cmp ax, 8
je 0x64bd07
cmp ax, 4
je 0x64bd07
cmp ax, 0xb
je 0x64bd07
cmp ax, 0xc
jmp 0x64bcf3
cmp dword [esi + 0x48], ebx
je 0x64bd33
mov ax, word [esi + 0x126]
cmp ax, 4
je 0x64bd07
cmp ax, 0xb
je 0x64bd07
cmp ax, 3
je 0x64bd07
cmp ax, 9
je 0x64bd07
cmp ax, 0xa
jne 0x64bd33
mov ecx, dword [esi + 0x1cc]
push edi
call fcn.0064dd98
test al, al
push 0xffffffffffffffff
push ecx
mov ecx, dword [esi + 0x48]
je 0x64bd25
fld dword [0x6eeeb0]
jmp 0x64bd2b
fld dword [0x6d11fc]
fstp dword [esp]
call fcn.00413ad7
mov al, 1
jmp 0x64bd39
xor al, al
pop edi
pop esi
pop ebx
pop ebp
ret 8