Function at 0x401f80
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x41813c]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 8]
call fcn.00403110
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x1b
jne 0x40200b
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
cmp ecx, 0x1b
jne 0x40200b
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 2]
cmp eax, 0x14
jne 0x40200b
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 3]
test edx, edx
jne 0x40200b
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 8]
movzx edx, byte [ecx + 5]
test edx, edx
je 0x402006
push 0
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 4]
call fcn.004037a0
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 8]
mov byte [edx + 5], 0
jmp 0x4022e1
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x1b
jne 0x40206d
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x1b
jne 0x40206d
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 2]
cmp edx, 3
jne 0x40206d
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 3]
test ecx, ecx
jne 0x40206d
mov edx, dword [ebp - 0x278]
mov eax, dword [edx + 8]
movzx ecx, byte [eax + 5]
cmp ecx, 1
je 0x402068
push 1
mov edx, dword [ebp - 0x278]
mov ecx, dword [edx + 4]
call fcn.004037a0
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 8]
mov byte [ecx + 5], 1
jmp 0x4022e1
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1b
jne 0x4020db
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 1]
cmp edx, 0x1b
jne 0x4020db
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 2]
cmp ecx, 3
jne 0x4020db
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 3]
cmp eax, 0x14
jne 0x4020db
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 4]
test edx, edx
jne 0x4020db
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 8]
movzx edx, byte [ecx + 5]
cmp edx, 2
je 0x4020d6
push 2
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 4]
call fcn.004037a0
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 8]
mov byte [edx + 5], 2
jmp 0x4022e1
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x1b
jne 0x40213d
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x1b
jne 0x40213d
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 2]
cmp edx, 0xa
jne 0x40213d
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 3]
test ecx, ecx
jne 0x40213d
mov edx, dword [ebp - 0x278]
mov eax, dword [edx + 8]
movzx ecx, byte [eax + 5]
cmp ecx, 3
je 0x402138
push 3
mov edx, dword [ebp - 0x278]
mov ecx, dword [edx + 4]
call fcn.004037a0
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 8]
mov byte [ecx + 5], 3
jmp 0x4022e1
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1b
jne 0x40219f
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 1]
cmp edx, 0x1b
jne 0x40219f
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 2]
cmp ecx, 0x1b
jne 0x40219f
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 3]
cmp eax, 0x1b
jne 0x40219f
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 4]
cmp edx, 1
jl 0x40219f
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 4]
cmp ecx, 5
jg 0x40219f
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 4]
sub eax, 1
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 8]
mov byte [edx + 9], al
jmp 0x4022e1
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x1b
jne 0x4022e1
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 1]
cmp eax, 0x1b
jne 0x4022e1
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 2]
cmp edx, 0x1b
jne 0x4022e1
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 3]
cmp ecx, 0x1b
jne 0x4022e1
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 4]
cmp eax, 6
jne 0x4022e1
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov dword [ebp - 0x19c], eax
push 0
mov ecx, dword [ebp - 0x19c]
push ecx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 0x26c], eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov dword [ebp - 0x270], eax
push 1
mov edx, dword [ebp - 0x26c]
push edx
mov eax, dword [ebp - 0x270]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x274], eax
push 0
mov ecx, dword [ebp - 0x26c]
push ecx
mov edx, dword [ebp - 0x270]
push edx
call dword [sym.imp.USER32.dll_AttachThreadInput]
cmp dword [ebp - 0x274], 0
jne 0x402268
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x274], eax
push 0x64
lea ecx, [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x274]
push edx
call dword [sym.imp.USER32.dll_GetClassNameW]
lea eax, [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 8]
movzx eax, byte [edx + 9]
push eax
push str.Send_Word_Method:__d_nTarget_Class_Name:__s
lea ecx, [ebp - 0x198]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov edx, dword [ebp - 0x278]
mov eax, dword [edx]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push 0
push str.test...
lea ecx, [ebp - 0x198]
push ecx
mov edx, dword [ebp - 0x278]
mov eax, dword [edx]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0x19c]
push ecx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00408348
mov esp, ebp
pop ebp
ret