Function at 0x46b850
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x4c3cb4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, ecx
call fcn.004817b6
push dword [ebx + 0xa8]
mov ecx, ebx
push 0xffffffffffffffff
call fcn.00481718
mov ecx, eax
call fcn.0048171e
push dword [ebx + 0xac]
mov ecx, ebx
push 1
call fcn.00481718
mov ecx, eax
call fcn.0048171e
push dword [ebx + 0xb0]
mov ecx, ebx
push 2
call fcn.00481718
mov ecx, eax
call fcn.0048171e
push dword [ebx + 0xb4]
mov ecx, ebx
push 9
call fcn.00481718
mov ecx, eax
call fcn.0048171e
push dword [ebx + 0xb8]
mov ecx, ebx
push 0x454
call fcn.00481718
mov ecx, eax
call fcn.0048171e
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.00481706
push 0xffffffffffffffff
mov ecx, ebx
mov edi, eax
call fcn.00481718
push 0
push 0
push 0x31
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
call fcn.004816d6
mov ecx, dword [edi]
push eax
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [section..00cfg]
mov ecx, edi
call esi
mov eax, dword [ebx + 0xa8]
lea ecx, [ebp - 0x1c]
push ecx
push dword [eax - 0xc]
push eax
push dword [edi + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov eax, dword [ebx + 0xb8]
lea ecx, [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
push ecx
push dword [eax - 0xc]
push eax
push dword [edi + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edi, dword [ebp - 0x1c]
mov eax, 0x1c2
cmp esi, edi
xorps xmm0, xmm0
cmovg edi, esi
add edi, 0x64
cmp edi, eax
cmovl edi, eax
mov dword [ebp - 0x18], edi
lea eax, [ebp - 0x14]
push eax
push dword [ebx + 0x20]
movups xmmword [ebp - 0x14], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
push 1
sub eax, ecx
push eax
push edi
push ecx
push dword [ebp - 0x14]
mov ecx, ebx
call fcn.00481724
push 1
mov ecx, ebx
call fcn.00481718
mov esi, eax
test esi, esi
je 0x46b9dc
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00481730
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
push 1
sub eax, ecx
mov dword [ebp - 0x14], 0x19
push eax
push 0x46
push ecx
push 0x19
mov ecx, esi
mov dword [ebp - 0xc], 0x5f
call fcn.00481724
push 2
mov ecx, ebx
call fcn.00481718
mov esi, eax
test esi, esi
je 0x46ba28
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00481730
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
push 1
sub eax, ecx
mov dword [ebp - 0x14], 0x78
push eax
push 0x46
push ecx
push 0x78
mov ecx, esi
mov dword [ebp - 0xc], 0xbe
call fcn.00481724
push 9
mov ecx, ebx
call fcn.00481718
mov esi, eax
test esi, esi
je 0x46ba71
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00481730
mov ecx, dword [ebp - 0x10]
lea edx, [edi - 0x5f]
lea eax, [edx + 0x46]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
push 1
sub eax, ecx
push eax
push 0x46
push ecx
push edx
mov ecx, esi
call fcn.00481724
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00481718
mov esi, dword [ebp - 0x18]
mov edi, eax
add esi, 0xffffffe7
test edi, edi
je 0x46babd
lea eax, [ebp - 0x14]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00481730
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
sub eax, edx
mov ecx, dword [ebp - 0x14]
push 1
push eax
mov eax, esi
mov dword [ebp - 0xc], esi
sub eax, ecx
push eax
push edx
push ecx
mov ecx, edi
call fcn.00481724
push 0x454
mov ecx, ebx
call fcn.00481718
mov edi, eax
test edi, edi
je 0x46bb04
lea eax, [ebp - 0x14]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
call fcn.00481730
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
push 1
sub eax, ecx
mov dword [ebp - 0xc], esi
push eax
mov eax, dword [ebp - 0x14]
sub esi, eax
push esi
push ecx
push eax
mov ecx, edi
call fcn.00481724
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0
mov edi, eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 1
mov esi, eax
push esi
push edi
call dword [sym.imp.USER32.dll_AttachThreadInput]
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, ebx
call fcn.0048173c
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SetActiveWindow]
push eax
call fcn.00481712
push 1
mov ecx, ebx
call fcn.00481f8a
push 0
push esi
push edi
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004038f0
mov esp, ebp
pop ebp
ret