Function at 0x4893a0
Capabilities:
Log keystrokes

Disassembly:
mov eax, dword [0x8030d0]
push esi
test eax, eax
push edi
jne 0x4893fb
mov esi, dword [sym.imp.USER32.dll_GetKeyboardType]
mov edi, 1
push 0
mov dword [0x8030d0], edi
call esi
cmp eax, 7
jne 0x4893e4
push edi
call esi
cmp eax, 2
jne 0x4893e4
mov dword [0x8030d4], edi
pop edi
mov dword [0x55aa30], 0
pop esi
jmp 0x4895f0
mov dword [0x55aa30], edi
pop edi
mov dword [0x8030d4], 0
pop esi
jmp 0x489430
mov eax, dword [0x55aa30]
test eax, eax
je 0x48940b
pop edi
pop esi
jmp 0x489430
mov eax, dword [0x8030d4]
test eax, eax
je 0x48941b
pop edi
pop esi
jmp 0x4895f0
pop edi
pop esi
jmp 0x4897b0
xor eax, eax
mov al, byte [esp + 6]
cmp eax, 0x7f
jle 0x48943e
xor eax, eax
ret
mov ecx, dword [esp + 4]
xor edx, edx
mov dl, byte [eax + 0x55a930]
shr ecx, 0x18
and ecx, 1
mov eax, edx
test ecx, ecx
jne 0x4894a8
lea ecx, [eax - 0x84]
cmp ecx, 0xf
ja case.0x4894bb.19
jmp dword [ecx*4 + 0x4894e8]
mov eax, 0xa3
ret
mov eax, 0xa4
ret
mov eax, 0xa5
ret
mov eax, 0xa6
ret
mov eax, 0xa8
ret
mov eax, 0xa9
ret
mov eax, 0xaa
ret
mov eax, 0xab
ret
mov eax, 0xad
ret
mov eax, 0xae
ret
lea ecx, [eax - 0xd]
cmp ecx, 0xa5
ja case.0x4894bb.19
xor edx, edx
mov dl, byte [ecx + 0x489544]
jmp dword [edx*4 + 0x489528]
mov eax, 0xb2
ret
mov eax, 0xac
ret
mov eax, 0xaf
ret
mov eax, 0xb1
ret
mov eax, 0x8c
ret
mov eax, 0x8b
ret
xor eax, eax
mov al, byte [esp + 6]
cmp eax, 0x7f
jle 0x4895fe
xor eax, eax
ret
mov ecx, dword [esp + 4]
xor edx, edx
mov dl, byte [eax + 0x55a9b0]
shr ecx, 0x18
and ecx, 1
mov eax, edx
test ecx, ecx
jne 0x489668
lea ecx, [eax - 0x84]
cmp ecx, 0xf
ja case.0x48967b.19
jmp dword [ecx*4 + 0x4896a8]
mov eax, 0xa3
ret
mov eax, 0xa4
ret
mov eax, 0xa5
ret
mov eax, 0xa6
ret
mov eax, 0xa8
ret
mov eax, 0xa9
ret
mov eax, 0xaa
ret
mov eax, 0xab
ret
mov eax, 0xad
ret
mov eax, 0xae
ret
lea ecx, [eax - 0xd]
cmp ecx, 0xa5
ja case.0x48967b.19
xor edx, edx
mov dl, byte [ecx + 0x489704]
jmp dword [edx*4 + 0x4896e8]
mov eax, 0xb2
ret
mov eax, 0xac
ret
mov eax, 0xaf
ret
mov eax, 0xb1
ret
mov eax, 0x8c
ret
mov eax, 0x8b
ret
push esi
mov esi, dword [esp + 8]
sar esi, 0x10
push edi
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyA]
and esi, 0x7f
push 3
push esi
call edi
lea ecx, [eax - 8]
cmp ecx, 0x9b
ja case.0x4897de.58
xor edx, edx
mov dl, byte [ecx + 0x489a90]
jmp dword [edx*4 + 0x4899c4]
pop edi
mov eax, 0xd
pop esi
ret
pop edi
mov eax, 0x7f
pop esi
ret
pop edi
mov eax, 0x89
pop esi
ret
pop edi
mov eax, 0x8c
pop esi
ret
pop edi
mov eax, 0x8a
pop esi
ret
pop edi
mov eax, 0x8d
pop esi
ret
pop edi
mov eax, 0x88
pop esi
ret
pop edi
mov eax, 0x81
pop esi
ret
pop edi
mov eax, 0x84
pop esi
ret
pop edi
mov eax, 0x85
pop esi
ret
pop edi
mov eax, 0x86
pop esi
ret
pop edi
mov eax, 0x87
pop esi
ret
pop edi
mov eax, 0x92
pop esi
ret
pop edi
mov eax, 0x91
pop esi
ret
pop edi
mov eax, 0x90
pop esi
ret
pop edi
mov eax, 0x93
pop esi
ret
pop edi
mov eax, 0x8e
pop esi
ret
pop edi
mov eax, 0x8f
pop esi
ret
pop edi
mov eax, 0x94
pop esi
ret
pop edi
mov eax, 0x95
pop esi
ret
pop edi
mov eax, 0x96
pop esi
ret
pop edi
mov eax, 0x97
pop esi
ret
pop edi
mov eax, 0x98
pop esi
ret
pop edi
mov eax, 0x99
pop esi
ret
pop edi
mov eax, 0x9a
pop esi
ret
pop edi
mov eax, 0x9b
pop esi
ret
pop edi
mov eax, 0x9c
pop esi
ret
pop edi
mov eax, 0x9d
pop esi
ret
pop edi
mov eax, 0x9e
pop esi
ret
pop edi
mov eax, 0x9f
pop esi
ret
pop edi
mov eax, 0x83
pop esi
ret
pop edi
mov eax, 0xad
pop esi
ret
pop edi
mov eax, 0xa9
pop esi
ret
pop edi
mov eax, 0xaa
pop esi
ret
pop edi
mov eax, 0xab
pop esi
ret
pop edi
mov eax, 0xa6
pop esi
ret
pop edi
mov eax, 0xa7
pop esi
ret
pop edi
mov eax, 0xa8
pop esi
ret
pop edi
mov eax, 0xa3
pop esi
ret
pop edi
mov eax, 0xa4
pop esi
ret
pop edi
mov eax, 0xa5
pop esi
ret
pop edi
mov eax, 0xb3
pop esi
ret
pop edi
mov eax, 0xb1
pop esi
ret
pop edi
mov eax, 0xb4
pop esi
ret
pop edi
mov eax, 0xb0
pop esi
ret
pop edi
mov eax, 0xae
pop esi
ret
pop edi
mov eax, 0xaf
pop esi
ret
pop edi
mov eax, 0xec
pop esi
ret
pop edi
mov eax, 0xed
pop esi
ret
pop edi
mov eax, 0xee
pop esi
ret
push 2
push eax
call edi
mov edi, eax
mov eax, dword [0x56cd8c]
and edi, 0xff
cmp eax, 1
jle 0x489999
push 1
push edi
call fcn.0051dcd8
add esp, 8
jmp 0x4899a4
mov eax, dword [str.________________________________H]
mov al, byte [eax + edi*2]
and eax, 1
test eax, eax
je 0x4899b3
push edi
call fcn.0051d307
add esp, 4
mov edi, eax
cmp esi, 0x29
jne 0x4899bd
mov edi, 0x60
mov eax, edi
pop edi
pop esi
ret