Function at 0x402700
Capabilities:
Accept command line arguments
Check if file exists
Check mutex on windows
Get common file path
Get file attributes
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x422004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push 0x41fb32
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryA]
push str.SetDefaultDllDirectories
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402745
push 0x800
call eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov esi, 0x804
mov edx, 0x422a70
push str.VtoyVlnkMUTEX
cmp ax, si
mov ecx, 0x422ab8
push 1
cmovne ecx, edx
push 0
mov dword [0x423640], ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x4027b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4027b1
mov eax, dword [0x423640]
push 0x10
push dword [eax]
push dword [eax + 0x28]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10
push 0x424170
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x423a48
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x424170
push str._sVentoyVlnk.log
push 0x104
push 0x423c50
call fcn.00401230
add esp, 0x10
mov dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 8], 0
mov esi, eax
jle 0x402920
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov ebx, 1
nop dword [eax]
push 0x41fae4
push dword [esi]
mov dword [ebp - 0xc], ebx
call edi
test eax, eax
je 0x402905
push 0x41faec
push dword [esi]
call edi
test eax, eax
je 0x402905
push 0x41faf4
push dword [esi]
call edi
test eax, eax
je 0x4028f9
push 0x41fafc
push dword [esi]
call edi
test eax, eax
je 0x4028f9
push 0x41fb04
push dword [esi]
call edi
test eax, eax
je 0x4028ed
push 0x41fb0c
push dword [esi]
call edi
test eax, eax
je 0x4028ed
push 0x41fb14
push dword [esi]
call edi
test eax, eax
je 0x4028d1
push 0x41fb1c
push dword [esi]
call edi
test eax, eax
je 0x4028d1
push 0x41fb24
push dword [esi]
call edi
test eax, eax
je 0x4028b5
push 0x41fb2c
push dword [esi]
call edi
test eax, eax
jne 0x40290c
cmp ebx, dword [ebp - 8]
jge 0x40290c
push dword [esi + 4]
push 0x104
push 0x423f68
call fcn.00407e46
add esp, 0xc
jmp 0x40290c
cmp ebx, dword [ebp - 8]
jge 0x40290c
push dword [esi + 4]
push 0x104
push 0x423d58
call fcn.00407e46
add esp, 0xc
jmp 0x40290c
mov dword [0x423f60], 1
jmp 0x40290c
mov dword [0x423f64], 1
jmp 0x40290c
mov byte [0x423c50], 0
mov eax, dword [ebp - 0xc]
inc ebx
add esi, 4
cmp eax, dword [ebp - 8]
jl 0x402820
mov ebx, dword [ebp - 0x10]
pop edi
cmp dword [0x423f64], 0
mov dword [0x424288], ebx
je 0x40296f
cmp word [0x423d58], 0
je 0x402947
cmp word [0x423f68], 0
jne 0x402aa8
push 0
push 0x41fb90
push str.VentoyVlnk.exe__CMD_r_n___i__Input_file_path_r_n___o__Output_vlnk_file_path_r_n___q__Quite_mode__no_log_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10
cmp word [0x423d58], 0
je 0x402a89
cmp word [0x423f68], 0
je 0x402a89
push str._VentoyVlnk_Cmdline_Mode__n
call fcn.00401370
add esp, 4
push 0x423d58
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x402a38
test al, 0x10
jne 0x402a38
mov ecx, 0x423f68
call fcn.004017e0
push 0x423f68
test eax, eax
jne 0x402a17
push str.File____ls___contains_invalid_vlnk_suffix__n
call fcn.00401270
mov eax, dword [0x423640]
add esp, 8
cmp word [0x423d58], 0
je 0x4029f1
cmp word [0x423f68], 0
jne 0x402a72
push 0x10
push dword [eax]
push dword [eax + 0x44]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10
push 0x423d58
xor ecx, ecx
call fcn.00401890
add esp, 8
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10
push 0x423d58
push str.File____ls___does_not_exist__n
call fcn.00401270
mov eax, dword [0x423640]
add esp, 8
cmp word [0x423d58], 0
je 0x402a63
cmp word [0x423f68], 0
jne 0x402a72
push 0x10
push dword [eax]
push dword [eax + 0x10]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10
push str._VentoyVlnk_GUI_Mode__n
call fcn.00401370
add esp, 4
push 0
push 0x402580
push 0
push 0x65
push ebx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.00403088
mov esp, ebp
pop ebp
ret 0x10