Function at 0x405150
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
push esi
push ebx
sub esp, 0xec
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc0], edx
and ebx, 0x10
jne 0x4052f0
mov eax, dword [sym.imp.user32.dll_MapVirtualKeyW]
xor edx, edx
mov esi, 1
mov dword [ebp - 0xbc], eax
test byte [ebp + 8], 2
jne 0x405362
test byte [ebp + 8], 8
jne 0x4053da
mov eax, ebx
and eax, 8
mov dword [ebp - 0xc4], eax
lea ecx, [edx + edx*4]
mov eax, 1
mov dword [esp], edi
lea esi, [esi + esi*4]
shl ecx, 2
mov dword [ebp - 0xd0], edx
shl esi, 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 word [ebp + ecx - 0xae], di
mov dword [ebp - 0xcc], ecx
mov dword [esp + 4], 0
call eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
mov dword [ebp + esi - 0xb4], 0
sub esp, 8
mov word [ebp + esi - 0xae], di
mov word [ebp + ecx - 0xac], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + ecx - 0xa8], ebx
lea ecx, [edx + 2]
mov edx, 1
mov word [ebp + esi - 0xb8], dx
movzx edx, word [ebp - 0xc0]
mov dword [ebp - 0xcc], ecx
mov ecx, 1
mov word [ebp + esi - 0xb0], cx
mov word [ebp + esi - 0xaa], dx
mov dword [esp + 4], 0
mov dword [esp], edi
call eax
mov dword [ebp + esi - 0xa8], ebx
mov ecx, dword [ebp - 0xcc]
mov word [ebp + esi - 0xac], ax
mov esi, dword [ebp - 0xc4]
sub esp, 8
mov edx, dword [ebp - 0xd0]
test esi, esi
jne 0x405580
test bl, 2
jne 0x405510
test bl, 0x10
jne 0x4054a0
test byte [0x413058], 8
jne 0x405460
mov dword [esp], 0
mov eax, dword [ebp - 0xc8]
lea edx, [ebp - 0xb8]
call sym._write_console_input.part.0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 1
xor edx, edx
mov dword [ebp - 0xb4], 1
mov esi, 2
mov word [ebp - 0xb8], ax
mov eax, dword [sym.imp.user32.dll_MapVirtualKeyW]
mov ebx, 0x10
mov word [ebp - 0xaa], dx
mov dword [ebp - 0xb0], 0x100001
mov dword [esp + 4], 0
mov dword [esp], 0x10
mov dword [ebp - 0xbc], eax
call eax
mov edx, 1
mov dword [ebp - 0xa8], 0x10
mov word [ebp - 0xac], ax
sub esp, 8
test byte [ebp + 8], 2
je 0x405192
lea edx, [edx + edx*4]
mov eax, 1
or ebx, 2
mov dword [esp + 4], 0
shl edx, 2
mov dword [esp], 0x12
mov word [ebp + edx - 0xb8], ax
xor eax, eax
mov word [ebp + edx - 0xaa], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + edx - 0xb4], 1
mov dword [ebp + edx - 0xb0], 0x120001
mov dword [ebp - 0xc4], edx
call eax
mov edx, dword [ebp - 0xc4]
sub esp, 8
mov word [ebp + edx - 0xac], ax
mov dword [ebp + edx - 0xa8], ebx
mov edx, esi
inc esi
test byte [ebp + 8], 8
je 0x40519c
lea edx, [edx + edx*4]
mov eax, 1
or ebx, 8
mov dword [esp + 4], 0
shl edx, 2
mov dword [esp], 0x11
mov word [ebp + edx - 0xb8], ax
xor eax, eax
mov word [ebp + edx - 0xaa], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + edx - 0xb4], 1
mov dword [ebp + edx - 0xb0], 0x110001
mov dword [ebp - 0xc4], edx
call eax
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc4], 8
sub esp, 8
mov word [ebp + edx - 0xac], ax
mov dword [ebp + edx - 0xa8], ebx
mov edx, esi
inc esi
jmp 0x4051a7
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0x414252
mov dword [esp + 8], str.write_console_input
mov dword [esp + 4], 0x413058
mov dword [esp], 3
mov dword [ebp - 0xbc], ecx
call sym._wine_dbg_log.constprop.0
mov ecx, dword [ebp - 0xbc]
jmp 0x4052cf
lea edi, [ecx + ecx*4]
mov eax, 1
xor edx, edx
and ebx, 0xffffffef
shl edi, 2
lea esi, [ecx + 1]
mov dword [esp + 4], 0
mov word [ebp + edi - 0xb8], ax
mov eax, dword [ebp - 0xbc]
mov word [ebp + edi - 0xaa], dx
mov dword [ebp + edi - 0xb4], 0
mov dword [ebp + edi - 0xb0], 0x100001
mov dword [esp], 0x10
call eax
mov dword [ebp + edi - 0xa8], ebx
mov ecx, esi
mov word [ebp + edi - 0xac], ax
sub esp, 8
jmp 0x4052c2
lea edi, [ecx + ecx*4]
lea esi, [ecx + 1]
xor eax, eax
mov ecx, 1
shl edi, 2
mov dword [esp + 4], 0
and ebx, 0xfffffffd
mov word [ebp + edi - 0xb8], cx
mov word [ebp + edi - 0xaa], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + edi - 0xb4], 0
mov dword [ebp + edi - 0xb0], 0x120001
mov dword [esp], 0x12
call eax
mov dword [ebp + edi - 0xa8], ebx
mov ecx, esi
mov word [ebp + edi - 0xac], ax
sub esp, 8
jmp 0x4052b9
lea edi, [ecx + ecx*4]
mov eax, 1
lea esi, [edx + 3]
and ebx, 0xfffffff7
shl edi, 2
mov dword [esp + 4], 0
mov word [ebp + edi - 0xb8], ax
xor eax, eax
mov word [ebp + edi - 0xaa], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp + edi - 0xb4], 0
mov dword [ebp + edi - 0xb0], 0x110001
mov dword [esp], 0x11
call eax
mov dword [ebp + edi - 0xa8], ebx
mov ecx, esi
mov word [ebp + edi - 0xac], ax
sub esp, 8
jmp 0x4052b0