Function at 0x4886e8
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x27
push 0
push 0
dec ecx
jne 0x4886f0
push ecx
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x488b89
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x48e328], 0
jbe 0x488b33
lea eax, [ebp - 4]
push eax
mov eax, dword [0x48e328]
push eax
call sub.user32.dll_GetWindowThreadProcessId
mov eax, dword [ebp - 4]
push eax
push 0
push 0x1f0fff
call sub.kernel32.dll_OpenProcess
mov ebx, eax
test ebx, ebx
jne 0x48874c
mov eax, 0x488ba0
call fcn.0042ce1c
jmp 0x488b33
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 8]
push eax
push 0x10ccea8
push ebx
call sub.kernel32.dll_ReadProcessMemory
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
add eax, 0x514
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
add eax, 0x714
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
cmp dword [ebp - 8], 0
jne 0x4887ae
push ebx
call sub.kernel32.dll_CloseHandle
mov eax, 0x488be0
call fcn.0042ce1c
jmp 0x488b33
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
add eax, 0xb0
add eax, 0x10
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
cmp dword [ebp - 0x10], 0xf
ja 0x4887f1
lea eax, [ebp - 0xc]
push eax
push 0xff
lea eax, [ebp - 0x117]
push eax
mov eax, dword [ebp - 8]
add eax, 0xb0
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
jmp 0x488824
lea eax, [ebp - 0xc]
push eax
push 4
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
add eax, 0xb0
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
lea eax, [ebp - 0xc]
push eax
push 0xff
lea eax, [ebp - 0x117]
push eax
mov eax, dword [ebp - 8]
push eax
push ebx
call sub.kernel32.dll_ReadProcessMemory
mov edx, ebx
mov eax, esi
call fcn.0048609c
test al, al
je 0x488b33
push 0x488bf8
call sub.kernel32.dll_LoadLibraryA
mov dword [0x48e318], eax
cmp dword [0x48e318], 0
jne 0x488871
push ebx
call sub.kernel32.dll_CloseHandle
push 0
push 0x488c04
push 0x488c0c
mov eax, esi
call fcn.0044e8a8
push eax
call sub.user32.dll_MessageBoxA_1
jmp 0x488b33
push 0x488c34
mov eax, dword [0x48e318]
push eax
call sub.kernel32.dll_GetProcAddress_1
mov edi, eax
test edi, edi
jne 0x4888ab
push 0
push 0x488c04
push 0x488c3c
mov eax, esi
call fcn.0044e8a8
push eax
call sub.user32.dll_MessageBoxA_1
push ebx
call sub.kernel32.dll_CloseHandle
jmp 0x488b33
mov eax, dword [0x48e328]
push eax
call edi
mov dword [0x48bbdc], eax
lea edx, [ebp - 0x11c]
mov eax, dword [esi + 0x318]
call fcn.00447f74
mov edx, dword [ebp - 0x11c]
mov eax, 0x48e32c
call fcn.00404120
lea edx, [ebp - 0x120]
mov eax, dword [esi + 0x31c]
call fcn.00447f74
mov edx, dword [ebp - 0x120]
mov eax, 0x48e330
call fcn.00404120
xor edx, edx
mov eax, dword [esi + 0x318]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [esi + 0x31c]
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor edx, edx
mov eax, dword [esi + 0x314]
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov dl, 1
mov eax, dword [esi + 0x3e8]
call fcn.0042de24
xor edx, edx
mov eax, dword [esi + 0x3ec]
call fcn.0042de24
lea edx, [ebp - 0x14]
mov eax, dword [0x48e328]
call fcn.00486048
lea edx, [ebp - 0x124]
mov eax, dword [ebp - 0x14]
call fcn.00408b30
mov edx, dword [ebp - 0x124]
lea eax, [ebp - 0x14]
call fcn.00404164
lea edx, [ebp - 0x12c]
mov eax, dword [0x48c02c]
mov eax, dword [eax]
call fcn.00467fec
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x128]
call fcn.00408b30
mov edx, dword [ebp - 0x128]
lea eax, [ebp - 0x18]
mov ecx, 0x488c6c
call fcn.004043d8
lea eax, [ebp - 0x130]
mov ecx, 0x488c84
mov edx, dword [ebp - 0x14]
call fcn.004043d8
mov ecx, dword [ebp - 0x130]
mov dl, 1
mov eax, dword [0x42e578]
call fcn.0042e628
mov dword [0x48e33c], eax
lea edx, [ebp - 0x134]
mov eax, dword [esi + 0x318]
call fcn.00447f74
mov eax, dword [ebp - 0x134]
push eax
mov ecx, 0x488c94
mov edx, 0x488ca4
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
lea edx, [ebp - 0x138]
mov eax, dword [esi + 0x31c]
call fcn.00447f74
mov eax, dword [ebp - 0x138]
push eax
mov ecx, 0x488cb4
mov edx, 0x488ca4
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
mov eax, dword [0x48e334]
push eax
mov ecx, 0x488cc8
mov edx, 0x488ca4
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
push 0x488cd8
mov ecx, 0x488ce4
mov edx, 0x488ce4
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
mov eax, dword [ebp - 0x18]
push eax
mov ecx, 0x488cf4
mov edx, 0x488d04
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
mov eax, dword [0x48e208]
push eax
mov ecx, 0x488d14
mov edx, 0x488d14
mov eax, dword [0x48e33c]
mov edi, dword [eax]
call dword [edi + 4]
cmp dword [0x48bbdc], 0
jbe 0x488af6
push 3
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [0x48e328]
push eax
call sub.user32.dll_SetWindowPos
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0
push 0
push 0
push 0x24
call sub.user32.dll_MapVirtualKeyA
push eax
push 0x24
call sub.user32.dll_keybd_event
push 0
push 2
push 0
push 0x24
call sub.user32.dll_MapVirtualKeyA
push eax
push 0x24
call sub.user32.dll_keybd_event
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 3
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
mov eax, dword [0x48e328]
push eax
call sub.user32.dll_SetWindowPos
lea eax, [ebp - 0x13c]
lea edx, [ebp - 0x117]
mov ecx, 0xff
call fcn.0040433c
lea eax, [ebp - 0x13c]
mov edx, 0x488d24
call fcn.00404394
mov edx, dword [ebp - 0x13c]
mov eax, dword [esi + 0x310]
call fcn.00447fa4
push ebx
call sub.kernel32.dll_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x488b90
lea eax, [ebp - 0x13c]
call fcn.004040cc
lea eax, [ebp - 0x138]
mov edx, 2
call fcn.004040f0
lea eax, [ebp - 0x130]
mov edx, 4
call fcn.004040f0
lea eax, [ebp - 0x120]
mov edx, 2
call fcn.004040f0
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004040f0
ret