Function at 0x4013b0
Capabilities:
Create process on windows
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x86c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, ecx
mov edi, edx
mov edx, 0x44
lea ecx, [ebp - 0x86c]
mov byte [ecx], 0
inc ecx
dec edx
jne 0x4013d8
mov edx, 0x10
lea ecx, [ebp - 0x824]
lea ebx, [ebx]
mov byte [ecx], 0
inc ecx
dec edx
jne 0x4013f0
lea ecx, [eax + 0x1fe]
push ecx
lea edx, [eax + 0xff]
push edx
add eax, 0x2fd
push eax
push str.Start_XPS_Viewer_to_print__s_to_printer___s_s_
mov dword [ebp - 0x86c], 0x44
call fcn.004029e0
push edi
push esi
push str.__s____s___p
lea eax, [ebp - 0x804]
push 0x400
push eax
call fcn.0040386c
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
add esp, 0x24
lea ecx, [ebp - 0x804]
push ecx
call ebx
lea edi, [eax*4 + 4]
mov eax, edi
call fcn.00403840
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
lea edx, [ebp - 0x804]
push edx
push 0
push 0xfde9
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
push eax
push str.Starting_XPS_viewer:__s
call fcn.004029e0
add esp, 8
lea eax, [ebp - 0x824]
push eax
lea ecx, [ebp - 0x86c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x804]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x4016bf
push str.Wait_for_XPS_to_start.
call fcn.004029e0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
push 0x7d0
call edi
xor esi, esi
lea esp, [esp]
mov eax, dword [ebp - 0x81c]
push eax
call fcn.00401260
add esp, 4
test eax, eax
jne 0x401500
push 0x1f4
call edi
inc esi
cmp esi, 0x1e
jl 0x4014e0
push 0x1f4
call edi
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyW]
mov esi, dword [sym.imp.USER32.dll_keybd_event]
mov ebx, dword [sym.imp.USER32.dll_VkKeyScanW]
mov dword [ebp - 0x80c], 0
cmp dword [ebp - 0x80c], 0
jne 0x401566
push str.Send_ENTER_to_confirm_print_dialog.
call fcn.004029e0
add esp, 4
push 0
push 0xd
call edi
push 0
mov byte [ebp - 0x814], al
mov ecx, dword [ebp - 0x814]
push 0
push ecx
push 0xd
call esi
mov edx, dword [ebp - 0x814]
push 0
push 2
push edx
push 0xd
jmp 0x4015ed
push str.Send_Alt_P_to_confirm_print_dialog.
call fcn.004029e0
add esp, 4
push 0
push 0x12
call edi
push 0
mov byte [ebp - 0x808], al
mov eax, dword [ebp - 0x808]
push 0
push eax
push 0x12
call esi
push 0
push 0x70
call ebx
movsx ecx, ax
push ecx
call edi
push 0
mov byte [ebp - 0x808], al
mov edx, dword [ebp - 0x808]
push 0
push edx
push 0x70
call ebx
movzx eax, al
push eax
call esi
push 0
push 0x12
call edi
push 0
mov byte [ebp - 0x808], al
mov ecx, dword [ebp - 0x808]
push 2
push ecx
push 0x12
call esi
push 0
push 0x70
call ebx
movsx edx, ax
push edx
call edi
push 0
push 2
push 0x9d
push 0x70
call ebx
movzx eax, al
push eax
call esi
mov dword [ebp - 0x810], 0
lea esp, [esp]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x81c]
push ecx
call fcn.00401260
add esp, 4
test eax, eax
je 0x401648
mov eax, dword [ebp - 0x810]
inc eax
mov dword [ebp - 0x810], eax
cmp eax, 0xa
jl 0x401600
mov eax, dword [ebp - 0x80c]
inc eax
mov dword [ebp - 0x80c], eax
cmp eax, 3
jl 0x401523
jmp 0x401655
push str.Print_dialog_closed
call fcn.004029e0
add esp, 4
mov edx, dword [ebp - 0x81c]
push edx
push str.Wait_for_XPS_viewer_to_finish._PID:__u
call fcn.004029e0
mov eax, dword [ebp - 0x824]
add esp, 8
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x824]
lea ecx, [ebp - 0x828]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x828]
push eax
push str.XPS_viewer_process_exited._Exit_code:__u
call fcn.004029e0
mov ecx, dword [ebp - 0x824]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 8
push ecx
call esi
mov edx, dword [ebp - 0x820]
push edx
call esi
mov eax, 1
jmp 0x40170d
lea eax, [ebp - 0x804]
push eax
call ebx
lea edi, [eax*4 + 4]
mov eax, edi
call fcn.00403840
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0x804]
push ecx
push 0
push 0xfde9
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
push eax
push str.Failed_to_create_process_for_program:__s.
call fcn.00402b00
add esp, 8
xor eax, eax
lea esp, [ebp - 0x878]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040382b
mov esp, ebp
pop ebp
ret