Function at 0x401470
Capabilities:
Create pipe
Create thread

Disassembly:
mov eax, 0x14e8
call fcn.00409bc0
sub rsp, rax
mov rax, qword [0x0040e4e8]
xor rax, rsp
mov qword [rsp + 0x14a0], rax
mov qword [rsp + 0x1508], rbp
lea rax, [rsp + 0xaa0]
mov rbp, rcx
mov qword [rsp + 0x14d8], rdi
mov qword [rsp + 0x14b8], r15
mov r15, rdx
lea rdx, str.MESSAGE
lea r8, str.TITLE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov r11d, dword [r15]
cmp r11d, 0x69
mov eax, r11d
ja 0x40161e
cmp eax, 0x69
je case.0x401517.100
add eax, 0xffffffff
cmp eax, 0x67
ja case.0x401517.3
lea r9, [0x00400000]
movzx eax, byte [r9 + rax + 0x1c24]
mov r8d, dword [r9 + rax*4 + 0x1c0c]
add r8, r9
jmp r8
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_WINSOCK_ERROR
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x30
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_LPR_RETRY
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x35
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_IPP_RETRY
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x35
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_IPP_SEND_ERROR
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x10
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_IPP_TIMEOUT
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x35
jmp 0x4017c0
sub eax, 0xc9
je 0x401791
sub eax, 3
je 0x401760
sub eax, 0xc4
je 0x40172f
sub eax, 1
je 0x4016fb
cmp eax, 0x270
je 0x4016c7
cmp r11d, 0x400
jb 0x401693
cmp r11d, 0x508
ja 0x401693
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_IPP_SEND_ERR_CODE
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
mov r9, r11
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x10
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_LPR_RETRY_TOP
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x35
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_IPP_FORBIDDEN
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x10
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.SSL_CERTIFICATE_TIME
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x10
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.SSL_AUTHENTICATED
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x10
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_JCP95_ERROR
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x30
jmp 0x4017c0
lea rax, [rsp + 0x2a0]
lea r8, str.IDS_LPR_QUEUE_ERR
lea rdx, str.MESSAGE
lea rcx, [0x0040f6b0]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.00402420
mov edi, 0x35
mov qword [rsp + 0x14d0], r12
mov edx, 0x3e9
mov rcx, rbp
mov qword [rsp + 0x14c8], r13
mov qword [rsp + 0x14c0], r14
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, rax
mov r13, rax
call qword [sym.imp.USER32.dll_GetDC]
lea rcx, [rsp + 0x70]
lea rdx, [0x0040e220]
mov r8d, 0x118
mov r12, rax
call fcn.004033d0
lea r8, [0x0040f5a0]
lea rdx, str.DEFAULT
mov rcx, rbp
call section..text
mov ecx, dword [0x0040e290]
mov dword [rsp + 0x58], ecx
mov ecx, dword [0x0040e294]
mov r14, rax
xor eax, eax
mov dword [rsp + 0x5c], ecx
mov rdx, r14
mov rcx, r12
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
call qword [sym.imp.GDI32.dll_SelectObject]
lea r9, [rsp + 0x50]
lea rdx, [rsp + 0x2a0]
mov r8d, 0xffffffff
mov rcx, r12
mov dword [rsp + 0x20], 0x410
call qword [sym.imp.USER32.dll_DrawTextA]
mov edx, dword [0x0040e294]
cmp eax, edx
jle 0x4018a4
mov ecx, eax
mov dword [rsp + 0xe4], eax
sub ecx, edx
add dword [rsp + 0x94], ecx
add dword [rsp + 0x104], ecx
add dword [rsp + 0x12c], ecx
add dword [rsp + 0x154], ecx
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0xca0]
mov qword [rsp + 0x1500], rbx
mov qword [rsp + 0x14e0], rsi
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea r8, [rsp + 0x48]
lea rdx, [0x0040a67c]
lea rcx, [rsp + 0xca0]
call fcn.00403220
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r9, [rsp + 0x40]
mov rdx, rbx
mov r8d, eax
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
test rbx, rbx
mov esi, dword [rsp + 0x40]
je 0x401954
nop
lea r8, [rsp + 0x48]
lea rdx, [0x0040a67c]
xor ecx, ecx
call fcn.00403220
test rax, rax
mov rbx, rax
je 0x401954
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r9, [rsp + 0x40]
mov rdx, rbx
mov r8d, eax
mov rcx, r12
call qword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov rax, qword [rsp + 0x40]
cmp esi, eax
cmovl esi, eax
jmp 0x401910
mov eax, dword [0x0040e290]
lea ecx, [rsi + 0xa]
cmp ecx, eax
jge 0x401991
sub eax, esi
lea ecx, [rsi + 1]
add eax, 1
mov dword [rsp + 0xe0], ecx
sub dword [rsp + 0x90], eax
cdq
sub eax, edx
sar eax, 1
sub dword [rsp + 0x100], eax
sub dword [rsp + 0x128], eax
sub dword [rsp + 0x150], eax
test dil, 0xf
mov rsi, qword [rsp + 0x14e0]
jne 0x401a05
mov edx, 0x3ea
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_EnableWindow]
mov edx, 2
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_EnableWindow]
mov edx, 0x3ea
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
mov edx, 2
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
jmp 0x401a37
mov edx, 1
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_EnableWindow]
mov edx, 1
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
lea rax, [0x0040f5a0]
lea r8, [rsp + 0x70]
xor r9d, r9d
mov rdx, r14
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.00402860
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, rbp
mov rdx, rax
call fcn.00402770
mov rdx, r12
mov rcx, r13
call qword [sym.imp.USER32.dll_ReleaseDC]
mov r14, qword [rsp + 0x14c0]
mov r13, qword [rsp + 0x14c8]
mov r12, qword [rsp + 0x14d0]
and edi, 0xf0
cmp edi, 0x10
jne 0x401a9d
mov edx, 0x7f01
jmp 0x401ac6
cmp edi, 0x30
jne 0x401aa9
mov edx, 0x7f03
jmp 0x401ac6
cmp edi, 0x20
jne 0x401ab5
mov edx, 0x7f02
jmp 0x401ac6
mov rdx, qword [rsp + 0x48]
mov eax, 0x7f04
cmp edi, 0x40
cmove rdx, rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadIconA]
mov edx, 0x3e8
mov rcx, rbp
mov rbx, rax
call qword [sym.imp.USER32.dll_GetDlgItem]
mov r9, rbx
mov edx, 0x172
mov r8d, 1
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageA]
lea rdx, [rsp + 0xaa0]
mov rcx, rbp
call qword [sym.imp.USER32.dll_SetWindowTextA]
lea r8, [rsp + 0x2a0]
mov edx, 0x3e9
mov rcx, rbp
call qword [sym.imp.USER32.dll_SetDlgItemTextA]
mov r9d, dword [r15 + 4]
lea r8, [r15 + 8]
lea rdx, str..pipe_s_Msg_d
lea rcx, [rsp + 0x190]
call qword [sym.imp.USER32.dll_wsprintfA]
xor ebx, ebx
lea rcx, [rsp + 0x190]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], 0x3e8
mov r9d, 0xff
xor r8d, r8d
mov edx, 0x400c0003
mov dword [rsp + 0x28], 0x1000
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeA]
mov r15, qword [rsp + 0x14b8]
cmp rax, 0xffffffffffffffff
mov rdi, qword [rsp + 0x14d8]
jne 0x401b8f
xor eax, eax
jmp 0x401be4
mov r8, rax
mov edx, 0xffffffeb
mov rcx, rbp
call qword [sym.imp.USER32.dll_SetWindowLongPtrA]
lea r11, [rsp + 0x60]
lea r8, [0x00401310]
mov qword [rsp + 0x28], r11
mov r9, rbp
mov edx, 0x4000
xor ecx, ecx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, 0xfffffffe
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov rbp, qword [rsp + 0x1508]
mov rbx, qword [rsp + 0x1500]
mov rcx, qword [rsp + 0x14a0]
xor rcx, rsp
call fcn.004033a0
add rsp, 0x14e8
ret