Function at 0x45ad60
Capabilities:
Log keystrokes

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
xor ebx, ebx
push esi
push edi
mov dword [eax], ebx
cmp ebp, ebx
je 0x45ad75
lea ecx, [ebp + 0x30]
jmp 0x45ad77
xor ecx, ecx
lea esi, [ebp + 0xe0]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 4], 3
mov dword [esi + 8], 2
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov edx, dword [ecx]
mov eax, dword [edx]
push esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x30]
push ebx
push ebx
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push ebx
push ebx
mov ecx, esi
call eax
mov eax, dword [ebp + 0x1d4]
call fcn.0045a6c0
lea edi, [ebp + 0x130]
lea ecx, [ebp + 0x30]
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 4], 3
mov dword [edi + 8], 0x403
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ebx
mov edx, dword [ecx]
mov eax, dword [edx]
push edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
push ebx
push ebx
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x34]
push ebx
push ebx
mov ecx, edi
call eax
lea esi, [ebp + 0x180]
lea ecx, [ebp + 0x30]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 4], 3
mov dword [esi + 8], 0x404
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov edx, dword [ecx]
mov eax, dword [edx]
push esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x30]
push ebx
push ebx
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push ebx
push ebx
mov ecx, esi
call eax
test dword [ebp + 0x1e4], 0x10000
je 0x45ae9a
mov eax, dword [ebp + 0x1dc]
cmp eax, ebx
je 0x45ae9a
cmp dword [ebp + 0x1e0], ebx
je 0x45ae9a
call fcn.0045a6c0
jmp 0x45aeba
mov eax, dword [esi + 4]
test al, 1
je 0x45aeba
mov ecx, dword [esi + 0x1c]
and eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ecx, ebx
je 0x45aeba
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push ebx
push 1
push ebx
push esi
call eax
mov eax, dword [ebp + 0x1d8]
cmp eax, ebx
jne 0x45aee6
mov eax, dword [edi + 4]
test al, 1
je 0x45aeed
mov ecx, dword [edi + 0x1c]
and eax, 0xfffffffe
mov dword [edi + 4], eax
cmp ecx, ebx
je 0x45aeed
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push ebx
push 1
push ebx
push edi
call eax
jmp 0x45aeed
mov esi, edi
call fcn.0045a6c0
mov ecx, dword [ebp + 4]
push 0xffffffffffffffec
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 8
jne 0x45af1f
mov edx, dword [ebp + 4]
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
push 3
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push edx
call esi
mov eax, dword [ebp + 4]
push 3
push ebx
push ebx
push ebx
push ebx
push 0xfffffffffffffffe
push eax
call esi
mov ebp, dword [ebp + 4]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push ebx
push edi
mov esi, eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 1
mov edi, eax
push esi
push edi
call dword [sym.imp.USER32.dll_AttachThreadInput]
push ebp
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push ebx
push esi
push edi
call dword [sym.imp.USER32.dll_AttachThreadInput]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 4