Function at 0x401f50
Capabilities:
Accept command line arguments
Copy file
Create process on windows
Get common file path

Disassembly:
mov eax, 0x1e28
call fcn.00408050
push ebx
push esi
mov dword [esp + 0x14], ecx
push edi
mov ecx, 0x82
xor eax, eax
mov edi, 0x4241b0
mov esi, str.SymtoneUpdate
rep stosd dword es:[edi], eax
mov ecx, 0x82
mov edi, 0x4243b8
rep stosd dword es:[edi], eax
mov ecx, 7
lea edi, [esp + 0x42c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x7b
lea edi, [esp + 0x448]
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
mov eax, dword [esp + 0x10]
mov ebx, 1
mov dword [esp + 0x14], esi
cmp eax, ebx
jle 0x402099
lea ecx, [esi + 4]
push ebp
mov dword [esp + 0x10], ecx
lea ebp, [esi + 8]
test esi, esi
je 0x402098
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
mov ax, word [ecx]
cmp ax, 0x2d
je 0x401ff5
cmp ax, 0x2f
jne 0x40207d
add ecx, 2
push str.DstPath
push ecx
call fcn.00407fc9
add esp, 8
test eax, eax
jne 0x40207d
mov eax, dword [esp + 0x14]
dec eax
cmp ebx, eax
jge 0x40207d
mov esi, dword [ebp]
mov ecx, 0x82
xor eax, eax
mov edi, 0x4243b8
rep stosd dword es:[edi], eax
push esi
call fcn.00407fac
add esp, 4
cmp eax, 0x103
jbe 0x40203b
mov eax, 0x103
jmp 0x402044
push esi
call fcn.00407fac
add esp, 4
lea ecx, [eax + eax]
mov edi, 0x4243b8
mov edx, ecx
push 0x41f14c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push 0x4243b8
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
add ecx, 4
inc ebx
mov dword [esp + 0x10], ecx
add ebp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc ebx
add edx, 4
add ebp, 4
cmp ebx, eax
mov dword [esp + 0x10], edx
jl 0x401fd4
pop ebp
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp word [0x4243b8], 0
jne 0x402216
lea eax, [esp + 0x1c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, 0x82
xor eax, eax
mov edi, 0x4243b8
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00407fac
add esp, 4
cmp eax, 0x103
jbe 0x4020e9
mov eax, 0x103
jmp 0x4020f6
lea edx, [esp + 0x1c]
push edx
call fcn.00407fac
add esp, 4
lea ecx, [eax + eax]
lea esi, [esp + 0x1c]
mov eax, ecx
mov edi, 0x4243b8
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x4243b8
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x4243b8
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea ecx, [esp + 0x224]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [esp + 0x228]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [esp + 0x224]
push 0
lea edx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4021c8
mov ax, word [0x4241ac]
mov ecx, 0x1ff
mov word [esp + 0x634], ax
xor eax, eax
lea edi, [esp + 0x636]
push 0x400
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x638]
push ecx
push 0x73
push 0
stosw word es:[edi], ax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0
lea edx, [esp + 0x638]
push str.Error:
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1e28
ret 4
push 0x4243b8
lea eax, [esp + 0xe38]
push str._DstPath___s_
push eax
call fcn.00407f3d
add esp, 0xc
lea ecx, [esp + 0xe34]
lea edx, [esp + 0x224]
push 5
push 0
push ecx
push edx
push 0x41f114
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1e28
ret 4
mov ecx, 0x82
xor eax, eax
mov edi, 0x4241b0
push 0x41f110
rep stosd dword es:[edi], eax
call fcn.00407fac
add esp, 4
cmp eax, 0x103
jbe 0x40223f
mov eax, 0x103
jmp 0x40224c
push 0x41f110
call fcn.00407fac
add esp, 4
lea ecx, [eax + eax]
mov esi, 0x41f110
mov eax, ecx
mov edi, 0x4241b0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x42c]
push ecx
push 0x4241b0
call fcn.00407eee
push 0x41f110
push 0x4241b0
call fcn.00407eee
mov edx, dword [esp + 0x28]
add esp, 0x10
lea ecx, [edx + 4]
call fcn.00404c10
test eax, eax
jne 0x4022ae
call fcn.00405280
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1e28
ret 4
lea eax, [esp + 0x1634]
push 0x400
push eax
push 0x72
push 0
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x24
lea ecx, [esp + 0x1638]
push 0x41f108
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x4022ef
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1e28
ret 4
push 0
push 0x402320
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edx, dword [esp + 0x1e40]
push eax
push 0x81
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamW]
pop edi
pop esi
pop ebx
add esp, 0x1e28
ret 4