Function at 0x447c26
Capabilities:
Log keystrokes via application hook

Disassembly:
push 8
mov eax, 0x468947
call fcn.00467f79
test ecx, ecx
je 0x447e20
mov eax, dword [0x480c54]
test eax, eax
jne 0x447c5e
push 0x40c8f8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x480c54], eax
test eax, eax
jne 0x447c5e
xor eax, eax
jmp 0x447e4f
mov esi, dword [sym.imp.USER32.dll_SetWindowsHookExA]
xor ebx, ebx
cmp dword [0x480c50], ebx
jne 0x447cf5
push ebx
push eax
push dword [sym.imp.SPYXXHK.DLL__SpyxxGetMsgProc_12]
push 3
call esi
mov ecx, eax
mov dword [0x480c50], ecx
test ecx, ecx
jne 0x447ce9
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
push 0x71
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 1
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 0x1030
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x447c57
mov eax, dword [sym.imp.SPYXXHK.DLL_ghhkMsgHook]
mov dword [eax], ecx
mov eax, dword [0x480c54]
cmp dword [0x480c4c], ebx
jne 0x447d8f
push ebx
push eax
push dword [sym.imp.SPYXXHK.DLL__SpyxxCallWndProc_12]
push 4
call esi
mov ecx, eax
mov dword [0x480c4c], ecx
test ecx, ecx
jne 0x447d83
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x10]
push 0x72
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 1
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 0x1030
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [0x480c50]
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
jmp 0x447cde
mov eax, dword [sym.imp.SPYXXHK.DLL_ghhkCallHook]
mov dword [eax], ecx
mov eax, dword [0x480c54]
cmp dword [0x480c48], ebx
jne 0x447e4c
push ebx
push eax
push dword [sym.imp.SPYXXHK.DLL__SpyxxCallWndRetProc_12]
push 0xc
call esi
mov ecx, eax
mov dword [0x480c48], ecx
test ecx, ecx
jne 0x447e17
lea ecx, [ebp - 0x10]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x10]
push 0x73
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 1
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__12]
push 0x1030
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [0x480c50]
mov esi, dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
call esi
push dword [0x480c4c]
call esi
mov byte [ebp - 4], 4
jmp 0x447d6e
mov eax, dword [sym.imp.SPYXXHK.DLL_ghhkRetHook]
mov dword [eax], ecx
jmp 0x447e4c
mov eax, dword [0x480c50]
xor ebx, ebx
mov esi, dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
test eax, eax
je 0x447e3a
push eax
call esi
mov dword [0x480c50], ebx
mov eax, dword [0x480c4c]
test eax, eax
je 0x447e4c
push eax
call esi
mov dword [0x480c4c], ebx
xor eax, eax
inc eax
call fcn.00467f53
ret