Function at 0x1400193c0
Capabilities:
Check mutex on windows
Delete file
Get common file path
Get file size
Identify system language via api
Set current directory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x8a0]
sub rsp, 0x9a0
mov rax, qword [0x140067008]
xor rax, rsp
mov qword [rbp + 0x890], rax
xor r12d, r12d
mov r14, r8
mov esi, r12d
mov edi, r12d
mov r15, rcx
call fcn.14003d8a0
cmp dword [rax], r12d
jle 0x140019452
mov ebx, r12d
nop
call fcn.14003d8a8
mov rcx, qword [rax]
cmp qword [rbx + rcx], rsi
je 0x14001943a
call fcn.14003d8a8
lea rdx, [0x14005f044]
mov rcx, qword [rax]
mov rcx, qword [rbx + rcx]
call fcn.14003d8ec
test eax, eax
je 0x14001944b
inc edi
add rbx, 8
call fcn.14003d8a0
cmp edi, dword [rax]
jl 0x140019410
jmp 0x140019452
mov dword [reloc.WS2_32.dll_accept], r12d
lea rcx, [0x14005ab60]
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryA]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rcx, rax
lea rdx, str.SetDefaultDllDirectories
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140019488
mov ecx, 0x800
call rax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ecx, 0x804
cmp ax, cx
jne 0x1400194ab
mov dword [0x1400715ac], 1
lea rax, [0x140067c90]
jmp 0x1400194b9
mov dword [0x1400715ac], r12d
lea rax, str.Error
lea r8, str.PlugsonMUTEX
mov qword [0x140069a98], rax
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
test rax, rax
je 0x14001950c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14001950c
mov rdx, qword [0x140069a98]
mov r9d, reloc.WS2_32.dll_recv
xor ecx, ecx
mov r8, qword [rdx]
mov rdx, qword [rdx + 0x68]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
jmp 0x140019bc1
lea rdx, [rbp + 0x50]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rdx, [rbp + 0x470]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov r8d, 0x104
lea rdx, [rbp + 0x260]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r8d, 0x104
lea rdx, [rbp + 0x680]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r8, r12
lea rdx, [rbp + 0x260]
mov ecx, r12d
movzx eax, word [rdx]
test ax, ax
je 0x140019594
cmp ax, 0x5c
je 0x140019578
cmp ax, 0x2f
jne 0x140019586
movsxd rax, ecx
lea r8, [rbp + 0x260]
lea r8, [r8 + rax*2]
inc ecx
add rdx, 2
cmp ecx, 0x104
jl 0x140019564
test r8, r8
je 0x1400195f0
mov word [r8], r12w
lea rax, [rbp + 0x50]
lea r8, [rbp + 0x260]
sub r8, rax
nop dword [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x1400195c4
add rax, 2
test ecx, ecx
jne 0x1400195b0
test edx, edx
je 0x1400195eb
lea rcx, [rbp + 0x260]
mov esi, 1
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rdx, [rbp + 0x50]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
jmp 0x1400195f0
mov esi, 2
lea rdx, str._altexe
lea rcx, [rbp + 0x50]
call fcn.14002c884
test rax, rax
je 0x140019616
or esi, 4
mov word [rax], r12w
lea rcx, [rbp + 0x50]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov qword [rsp + 0x38], r12
lea rbx, [0x1400712e0]
mov qword [rsp + 0x30], r12
lea r8, [rbp + 0x50]
mov dword [rsp + 0x28], 0x104
mov r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], rbx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov r9, rbx
lea r8, [0x140059f14]
mov edx, 0x104
lea rcx, [0x1400711c0]
call fcn.140001120
lea r9, str.VentoyPlugson.log
mov edx, 0x104
lea r8, [0x140059f14]
lea rcx, [0x140071400]
call fcn.140001120
mov qword [rsp + 0x30], r12
lea rcx, [0x140071400]
mov dword [rsp + 0x28], r12d
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 3
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1400196e0
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 0x100000
jl 0x1400196e0
lea rcx, [0x140071400]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
lea rdx, str._Ventoy_Plugson__n
mov ecx, 1
mov qword [0x140069b18], rax
call fcn.140001c50
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x104
call fcn.14002cbb0
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], r12
lea r8, [rbp + 0x470]
mov dword [rsp + 0x28], 0x104
mov r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea r8, [rsp + 0x40]
mov ecx, 1
lea rdx, str.Current_Directory___s__n
call fcn.140001c50
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x104
call fcn.14002cbb0
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], r12
lea r8, [rbp + 0x680]
mov dword [rsp + 0x28], 0x104
mov r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea r8, [rsp + 0x40]
mov ecx, 1
lea rdx, str.Exe_file_path___s__n
call fcn.140001c50
test sil, 1
je 0x140019825
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x104
call fcn.14002cbb0
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], r12
lea r8, [rbp + 0x260]
mov dword [rsp + 0x28], 0x104
mov r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea r8, [rsp + 0x40]
mov ecx, 1
lea rdx, str.Change_current_dir_to_exe___s__n
call fcn.140001c50
test sil, 2
je 0x14001983c
lea rdx, str.Current_directory_check_OK._n
mov ecx, 1
call fcn.140001c50
test sil, 4
je 0x14001989d
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x104
call fcn.14002cbb0
mov qword [rsp + 0x38], r12
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], r12
lea r8, [rbp + 0x50]
mov dword [rsp + 0x28], 0x104
mov r9d, 0xffffffff
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea r8, [rsp + 0x40]
mov ecx, 1
lea rdx, str.altexe_detected__change_current_dir_to___s__n
call fcn.140001c50
lea r8, str.plugson.tar.xz
lea rdx, [0x1400711c0]
lea rcx, str._s_ventoy_s
call fcn.140002830
test eax, eax
jne 0x1400198df
mov rdx, qword [0x140069a98]
lea r9d, [rax + 0x10]
xor ecx, ecx
mov r8, qword [rdx]
mov rdx, qword [rdx + 0x70]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
jmp 0x140019bc1
lea rdi, [0x14007177c]
test r14, r14
je 0x1400199a5
lea rdx, [0x14005eff4]
mov rcx, r14
call fcn.14002c350
mov rbx, rax
test rax, rax
jne 0x14001991d
lea rdx, [0x14005eff8]
mov rcx, r14
call fcn.14002c350
mov rbx, rax
test rax, rax
je 0x140019953
add rbx, 2
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14001992c
cmp al, 9
jne 0x140019931
inc rbx
jmp 0x140019921
movsx ecx, al
call fcn.140031b00
test eax, eax
jne 0x140019942
cmp byte [rbx], 0x2e
jne 0x140019953
movzx eax, byte [rbx]
mov byte [rdi], al
inc rdi
movzx eax, byte [rbx + 1]
inc rbx
jmp 0x140019931
lea rdx, [0x14005effc]
mov rcx, r14
call fcn.14002c350
test rax, rax
jne 0x14001997b
lea rdx, [0x14005f000]
mov rcx, r14
call fcn.14002c350
test rax, rax
je 0x1400199a5
xor edx, edx
lea rcx, [rax + 3]
lea r8d, [rdx + 0xa]
call fcn.14002e87c
mov r9d, eax
lea r8, [0x14005c67c]
mov edx, reloc.WS2_32.dll_recv
lea rcx, [0x14007179c]
call fcn.140001120
cmp byte [0x14007177c], r12b
jne 0x1400199c6
lea r8, str.127.0.0.1
mov edx, 0x20
lea rcx, [0x14007177c]
call fcn.140031660
cmp byte [0x14007179c], r12b
jne 0x1400199e7
lea r8, str.24681
mov edx, reloc.WS2_32.dll_recv
lea rcx, [0x14007179c]
call fcn.140031660
lea rdx, str._n
mov ecx, 1
call fcn.140001c50
lea r9, [0x14007179c]
mov ecx, 1
lea r8, [0x14007177c]
lea rdx, str._Ventoy_Plugson__s:_s__n
call fcn.140001c50
lea rdx, str._n
mov ecx, 1
call fcn.140001c50
call section..text
call fcn.140002000
test eax, eax
je 0x140019aaa
lea rdx, str.Failed_to_init_www_n
mov ecx, 1
call fcn.140001c50
mov rdx, qword [0x140069a98]
mov r9d, reloc.WS2_32.dll_recv
xor ecx, ecx
mov r8, qword [rdx]
mov rdx, qword [rdx + 0x28]
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rdx, str.ventoy_disk_exit_..._n
mov ecx, 1
call fcn.140001c50
mov rcx, qword [0x140069a80]
test rcx, rcx
je 0x140019a85
call fcn.14002da28
mov rcx, qword [0x140069b18]
mov qword [0x140069a80], r12
mov dword [0x140069b10], r12d
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x140019bc1
mov edx, dword [0x140069b14]
mov eax, r12d
mov r8, qword [0x140069b20]
test edx, edx
jle 0x140019b61
movabs r9, 0x756e656d2f777777
nop dword [rax]
mov ecx, dword [r8 + 0x108]
cmp ecx, 0xc
jne 0x140019aef
cmp qword [r8 + 4], r9
jne 0x140019aec
cmp dword [r8 + 0xc], 0x7473696c
je 0x140019b00
cmp ecx, 0xc
jg 0x140019b61
inc eax
add r8, 0x118
cmp eax, edx
jl 0x140019ad0
jmp 0x140019b61
mov eax, 0x66666667
mov r11d, r12d
imul dword [r8]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
test edx, edx
jle 0x140019b61
mov r10, r12
lea r9, [0x14006c575]
mov rcx, qword [r8 + 0x110]
lea r10, [r10 + 5]
inc r11d
lea r9, [r9 + 8]
mov eax, dword [rcx + r10 - 5]
mov dword [r9 - 0xd], eax
movzx eax, byte [rcx + r10 - 1]
mov byte [r9 - 9], al
mov eax, 0x66666667
mov byte [r9 - 8], r12b
imul dword [r8]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r11d, edx
jl 0x140019b22
cmp qword [0x1400705e8], r12
jne 0x140019b88
mov ecx, 0x1000000
call fcn.14002da3c
mov qword [0x1400705e8], rax
add rax, 0x800000
mov qword [0x14006d300], rax
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
xor r8d, r8d
mov qword [0x1400711a0], r15
lea r9, [0x140018fc0]
mov qword [0x14006d288], rax
mov rcx, r15
mov qword [rsp + 0x20], r12
lea edx, [r8 + 0x65]
call qword [sym.imp.USER32.dll_DialogBoxParamA]
xor eax, eax
mov rcx, qword [rbp + 0x890]
xor rcx, rsp
call fcn.14002b5c0
lea r11, [rsp + 0x9a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret