Function at 0x406340
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xdc
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], ecx
and esi, 0x10
jne 0x4064e8
mov edi, 2
mov edx, 2
mov ebx, 1
mov dword [ebp - 0xc4], 0
test byte [ebp + 8], 2
jne 0x406561
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0xc4]
and edx, 8
jne 0x4065f3
lea ecx, [esi + esi*4]
mov eax, 1
mov dword [ebp - 0xd0], edx
lea ebx, [ebx + ebx*4]
shl ecx, 2
shl ebx, 2
mov word [ebp + ecx - 0xb8], ax
mov eax, 1
mov word [ebp + ecx - 0xb0], ax
movzx eax, word [ebp - 0xc0]
mov dword [ebp + ecx - 0xb4], 1
mov word [ebp + ecx - 0xaa], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xcc], ecx
mov word [ebp + ecx - 0xae], ax
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._MapVirtualKeyW_8
mov ecx, dword [ebp - 0xcc]
mov edx, 1
mov dword [ebp + ebx - 0xb4], 0
mov word [ebp + ebx - 0xb8], dx
movzx edx, word [ebp - 0xc0]
sub esp, 8
mov word [ebp + ecx - 0xac], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + ecx - 0xa8], edi
lea ecx, [esi + 2]
mov dword [ebp - 0xcc], ecx
mov ecx, 1
mov word [ebp + ebx - 0xb0], cx
mov word [ebp + ebx - 0xaa], dx
mov word [ebp + ebx - 0xae], ax
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._MapVirtualKeyW_8
mov edx, dword [ebp - 0xd0]
mov dword [ebp + ebx - 0xa8], edi
sub esp, 8
mov word [ebp + ebx - 0xac], ax
mov ecx, dword [ebp - 0xcc]
test edx, edx
jne 0x406740
test edi, 2
jne 0x4066d0
test edi, edi
jne 0x406660
lea eax, [ebp - 0xb8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], eax
call sym._write_console_input
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
mov eax, 1
mov dword [ebp - 0xb4], 1
mov edi, 3
mov word [ebp - 0xaa], dx
mov ebx, 2
mov esi, 1
mov word [ebp - 0xb8], ax
mov dword [ebp - 0xb0], 0x100001
mov dword [esp + 4], 0
mov dword [esp], 0x10
call sym._MapVirtualKeyW_8
mov edx, 0x12
mov dword [ebp - 0xa8], 0x10
mov word [ebp - 0xac], ax
sub esp, 8
mov dword [ebp - 0xc4], 0x10
test byte [ebp + 8], 2
je 0x40638d
lea ecx, [esi + esi*4]
mov eax, 1
neg esi
mov dword [ebp - 0xcc], edx
shl ecx, 2
and esi, 0x14
mov word [ebp + ecx - 0xb8], ax
xor eax, eax
mov dword [ebp + ecx - 0xb4], 1
mov word [ebp + ecx - 0xaa], ax
mov dword [ebp - 0xc4], ecx
mov dword [ebp + esi - 0xb0], 0x120001
mov esi, ebx
mov ebx, edi
mov dword [esp + 4], 0
mov dword [esp], 0x12
call sym._MapVirtualKeyW_8
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xcc]
sub esp, 8
mov dword [ebp - 0xc4], edx
mov edi, dword [ebp - 0xc4]
mov dword [ebp + ecx - 0xa8], edx
mov edx, dword [ebp + 8]
mov word [ebp + ecx - 0xac], ax
and edx, 8
je 0x40639f
lea esi, [esi + esi*4]
mov eax, 1
or edi, 8
shl esi, 2
mov word [ebp + esi - 0xb8], ax
xor eax, eax
mov dword [ebp + esi - 0xb4], 1
mov word [ebp + esi - 0xaa], ax
mov dword [ebp + esi - 0xb0], 0x110001
mov dword [esp + 4], 0
mov dword [esp], 0x11
call sym._MapVirtualKeyW_8
mov dword [ebp + esi - 0xa8], edi
mov edx, 8
mov word [ebp + esi - 0xac], ax
sub esp, 8
mov esi, ebx
add ebx, 1
jmp 0x40639f
lea esi, [ecx + ecx*4]
mov eax, 1
lea ebx, [ecx + 1]
xor edx, edx
shl esi, 2
mov word [ebp + esi - 0xb8], ax
mov dword [ebp + esi - 0xb4], 0
mov word [ebp + esi - 0xaa], dx
mov dword [ebp + esi - 0xb0], 0x100001
mov dword [esp + 4], 0
mov dword [esp], 0x10
call sym._MapVirtualKeyW_8
mov ecx, ebx
mov dword [ebp + esi - 0xa8], 0
mov word [ebp + esi - 0xac], ax
sub esp, 8
jmp 0x4064b6
lea esi, [ecx + ecx*4]
lea ebx, [ecx + 1]
xor eax, eax
mov ecx, 1
shl esi, 2
and edi, 0xfffffffd
mov word [ebp + esi - 0xb8], cx
mov dword [ebp + esi - 0xb4], 0
mov word [ebp + esi - 0xaa], ax
mov dword [ebp + esi - 0xb0], 0x120001
mov dword [esp + 4], 0
mov dword [esp], 0x12
call sym._MapVirtualKeyW_8
mov dword [ebp + esi - 0xa8], edi
mov ecx, ebx
mov word [ebp + esi - 0xac], ax
sub esp, 8
jmp 0x4064ae
lea ebx, [ecx + ecx*4]
mov eax, 1
add esi, 3
shl ebx, 2
mov word [ebp + ebx - 0xb8], ax
xor eax, eax
mov dword [ebp + ebx - 0xb4], 0
mov word [ebp + ebx - 0xaa], ax
mov dword [ebp + ebx - 0xb0], 0x110001
mov dword [esp + 4], 0
mov dword [esp], 0x11
call sym._MapVirtualKeyW_8
mov ecx, esi
mov word [ebp + ebx - 0xac], ax
mov eax, dword [ebp - 0xc4]
sub esp, 8
mov dword [ebp + ebx - 0xa8], eax
mov edi, eax
jmp 0x4064a2