Function at 0x40e580
Capabilities:
Log keystrokes via application hook
Terminate process

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x10
push ebx
xor ebx, ebx
mov dword [0x81df8c], eax
mov eax, dword [0x583488]
push eax
push eax
mov byte [0x81df95], bl
mov byte [0x81df96], bl
mov dword [0x81df88], ebx
mov dword [0x81df84], ebx
mov dword [0x81df7c], 0x320
mov dword [0x81df80], 0x258
mov dword [0x81df90], ebx
mov byte [0x81df97], 1
mov byte [0x81df98], 1
mov dword [0x81df64], ebx
call dword [sym.imp.user32.dll_FindWindowA]
test eax, eax
je 0x40e5ef
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jge 0x40e601
push 1
call fcn.005176c8
push esi
mov esi, dword [esp + 0x1c]
mov eax, esi
call fcn.0040e480
test eax, eax
jne 0x40e61b
pop esi
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
push esi
call fcn.0040e180
add esp, 4
cmp eax, ebx
mov dword [0x81df74], eax
je 0x40e611
push edi
push 0x6b
push esi
call dword [sym.imp.user32.dll_LoadIconA]
mov ecx, dword [0x81df74]
push eax
push 0xfffffffffffffff2
push ecx
call dword [sym.imp.user32.dll_SetClassLongA]
mov edi, dword [sym.imp.user32.dll_SystemParametersInfoA]
push ebx
push 0x81df68
push 8
push 0x3a
mov dword [0x81df68], 8
mov dword [esp + 0x3c], ebx
call edi
test eax, eax
je 0x40e68a
mov eax, dword [0x81df6c]
test al, 2
je 0x40e68a
push ebx
push 0x81df68
push 8
push 0x3b
mov dword [esp + 0x3c], eax
mov dword [0x81df6c], ebx
call edi
mov ecx, 0x81dbe0
mov dword [0x81df78], esi
call fcn.0040dd10
call fcn.004139e0
test eax, eax
jne 0x40e6c1
mov edx, dword [0x81df74]
push edx
call dword [sym.imp.user32.dll_DestroyWindow]
call dword [sym.imp.ole32.dll_CoUninitialize]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
mov eax, dword [0x81df74]
push 1
push eax
call dword [sym.imp.user32.dll_ShowWindow]
mov ecx, dword [0x81df74]
push ecx
call dword [sym.imp.user32.dll_UpdateWindow]
mov edx, dword [0x81df74]
push edx
call dword [sym.imp.user32.dll_SetForegroundWindow]
mov eax, dword [0x81df74]
push eax
call dword [sym.imp.user32.dll_SetFocus]
push ebx
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
cmp dword [0x81dfec], ebx
jne 0x40e718
push ebx
push esi
push 0x40e0f0
push 0xd
call dword [sym.imp.user32.dll_SetWindowsHookExA]
mov dword [0x81dfec], eax
cmp byte [0x81df94], bl
mov dword [0x81dff0], ebx
je 0x40e72d
push ebx
call dword [sym.imp.user32.dll_ShowCursor]
call fcn.0040e390
test al, al
jne 0x40e756
call fcn.0040e3f0
mov ecx, dword [0x81df74]
push ecx
call dword [sym.imp.user32.dll_DestroyWindow]
mov eax, dword [0x81dfa4]
pop edi
pop esi
pop ebx
add esp, 0x10
ret 0x10
call fcn.0047e400
call fcn.0040e2c0
fst dword [0x81df70]
mov al, byte [0x81df95]
fstp dword [0x81dfe4]
cmp al, bl
jne 0x40e949
mov esi, dword [sym.imp.user32.dll_PeekMessageA]
mov edi, dword [sym.imp.user32.dll_TranslateMessage]
push ebp
mov ebp, dword [sym.imp.user32.dll_DispatchMessageA]
lea esp, [esp]
push 1
push ebx
push ebx
push ebx
push 0x81df9c
call esi
test eax, eax
je 0x40e7ce
cmp dword [0x81dfa0], 0x12
jne 0x40e7b0
mov byte [0x81df95], 1
push 0x81df9c
call edi
push 0x81df9c
call ebp
push 1
push ebx
push ebx
push ebx
push 0x81df9c
call esi
test eax, eax
jne 0x40e7a0
cmp dword [0x81df64], ebx
jne 0x40e926
lea ebx, [ebx]
call dword [sym.imp.winmm.dll_timeGetTime]
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x40e7f8
fadd dword [0x5303b0]
fstp dword [0x81dfc0]
fld dword [0x81dfe4]
fadd dword [0x53098c]
fcomp dword [0x81dfc0]
fnstsw ax
test ah, 5
jp 0x40e837
mov edx, dword [0x81dfe8]
mov eax, dword [0x81dfc0]
mov dword [0x81dfbc], edx
mov dword [0x81dfe8], 0
mov dword [0x81dfe4], eax
fld dword [0x81dfc0]
fsub dword [0x81df70]
fld dword [0x53098c]
fdiv dword [0x81dff4]
fcompp
fnstsw ax
test ah, 0x41
je 0x40e7e0
fld dword [0x81dfc0]
mov ecx, dword [0x81dfc0]
fsub dword [0x81df70]
mov dword [0x81df70], ecx
fmul dword [0x5303c8]
fstp dword [0x81dfc4]
fld dword [0x81dfc4]
fcomp dword [0x530988]
fnstsw ax
test ah, 0x41
jne 0x40e899
mov dword [0x81dfc4], 0x3dcccccd
fld dword [0x81dfdc]
mov eax, dword [0x81dff8]
cmp eax, ebx
fadd dword [0x81dfc4]
fstp dword [0x81dfdc]
je 0x40e8dc
fld dword [0x81dfbc]
sub esp, 8
fstp qword [esp]
lea edx, [esp + 0x18]
push 0x53097c
push edx
call fcn.00516fa5
lea eax, [esp + 0x20]
push eax
call fcn.00413900
add esp, 0x14
mov ecx, 0x81dbe0
call fcn.0040dd30
push ebx
push ebx
push 3
call fcn.00458800
call fcn.00414370
call fcn.00413ce0
call fcn.00414080
call fcn.00413b50
push ebx
push ebx
push 5
call fcn.00458800
add esp, 0x18
call fcn.00414040
fld dword [0x81dfe8]
fadd dword [0x5303b4]
fstp dword [0x81dfe8]
cmp byte [0x81df96], bl
je 0x40e936
push 1
call dword [sym.imp.kernel32.dll_Sleep]
cmp byte [0x81df95], bl
je 0x40e790
mov edi, dword [sym.imp.user32.dll_SystemParametersInfoA]
pop ebp
mov ecx, dword [0x81e0d0]
cmp ecx, ebx
je 0x40e96f
cmp dword [ecx + 0x34], 2
jne 0x40e969
mov esi, ecx
call fcn.00411080
push esi
call fcn.0051647d
add esp, 4
mov dword [0x81e0d0], ebx
call fcn.0040c470
call fcn.0047e510
cmp dword [esp + 0x2c], ebx
mov dword [0x81df68], 8
je 0x40e995
push ebx
push 0x81df68
push 8
push 0x3b
call edi
cmp byte [0x81df94], bl
je 0x40e9a5
push 1
call dword [sym.imp.user32.dll_ShowCursor]
call fcn.0040e3f0
mov ecx, dword [0x81df74]
push ecx
call dword [sym.imp.user32.dll_DestroyWindow]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x81dfa4]
pop edi
pop esi
pop ebx
add esp, 0x10
ret 0x10