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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x452004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push 0x44a7a0
mov dword [ebp - 0x210], eax
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 0x41550d
push 0x800
call eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ecx, 0x804
cmp ax, cx
jne 0x41552e
mov dword [0x45abec], 1
mov eax, 0x452a9c
jmp 0x41553d
mov dword [0x45abec], 0
mov eax, 0x452a60
push str.PlugsonMUTEX
push 1
push 0
mov dword [0x453b4c], eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
je 0x41558c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41558c
mov eax, dword [0x453b4c]
push 0x10
push dword [eax]
push dword [eax + 0x34]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422702
mov esp, ebp
pop ebp
ret 0x10
push esi
push edi
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0
push 0
push 0x104
push 0x45a920
push 0xffffffffffffffff
lea eax, [ebp - 0x20c]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x45a920
push 0x44a068
push 0x104
push 0x45a800
call fcn.00401100
push str.VentoyPlugson.log
push 0x45a920
push str._s_s
push 0x104
push 0x45aa40
call fcn.00401100
add esp, 0x24
push 0
push 0
push 3
push 0
push 0
push 0
push 0x45aa40
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x415641
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0x100000
jl 0x415641
push 0x45aa40
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push str.plugson.tar.xz
push 0x45a800
push str._s_ventoy_s
mov dword [0x453b8c], eax
call fcn.00402240
add esp, 0xc
test eax, eax
jne 0x415699
mov eax, dword [0x453b4c]
push 0x10
push dword [eax]
push dword [eax + 0x38]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422702
mov esp, ebp
pop ebp
ret 0x10
mov edi, 0x45adbc
test ebx, ebx
je 0x415747
push 0x44e7c8
push ebx
call fcn.00423470
mov esi, eax
add esp, 8
test esi, esi
jne 0x4156ce
push 0x44e7cc
push ebx
call fcn.00423470
mov esi, eax
add esp, 8
test esi, esi
je 0x415701
add esi, 2
mov al, byte [esi]
cmp al, 0x20
je 0x4156db
cmp al, 9
jne 0x4156e0
inc esi
jmp 0x4156d1
movsx eax, al
push eax
call fcn.00428170
add esp, 4
test eax, eax
jne 0x4156f5
cmp byte [esi], 0x2e
jne 0x415701
movzx eax, byte [esi]
mov byte [edi], al
inc edi
mov al, byte [esi + 1]
inc esi
jmp 0x4156e0
push 0x44e7d0
push ebx
call fcn.00423470
add esp, 8
test eax, eax
jne 0x415725
push 0x44e7d4
push ebx
call fcn.00423470
add esp, 8
test eax, eax
je 0x415747
push 0xa
add eax, 3
push 0
push eax
call fcn.00425483
push eax
push 0x44c080
push 0x10
push 0x45addc
call fcn.00401100
add esp, 0x1c
cmp byte [0x45adbc], 0
jne 0x415764
push str.127.0.0.1
push 0x20
push 0x45adbc
call fcn.00427bdd
add esp, 0xc
cmp byte [0x45addc], 0
jne 0x415781
push str.24681
push 0x10
push 0x45addc
call fcn.00427bdd
add esp, 0xc
push str._n
push 1
call fcn.00401a20
push 0x45addc
push 0x45adbc
push str._Ventoy_Plugson__s:_s__n
push 1
call fcn.00401a20
push str._n
push 1
call fcn.00401a20
add esp, 0x20
call section..text
call fcn.00401bf0
test eax, eax
je 0x415840
push str.Failed_to_init_www_n
push 1
call fcn.00401a20
mov eax, dword [0x453b4c]
add esp, 8
push 0x10
push dword [eax]
push dword [eax + 0x14]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push str.ventoy_disk_exit_..._n
push 1
call fcn.00401a20
mov eax, dword [0x453b40]
add esp, 8
test eax, eax
je 0x415808
push eax
call fcn.00424740
add esp, 4
push dword [0x453b8c]
mov dword [0x453b40], 0
mov dword [0x453b88], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422702
mov esp, ebp
pop ebp
ret 0x10
mov ecx, str.www_helplist
call fcn.00401b20
mov edi, eax
test edi, edi
je 0x4158ac
mov eax, 0x66666667
xor esi, esi
imul dword [edi]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x4158ac
xor ebx, ebx
nop dword [eax + eax]
mov ecx, dword [edi + 0x10c]
lea ebx, [ebx + 5]
mov eax, dword [ecx + ebx - 5]
mov dword [esi*8 + 0x456538], eax
mov al, byte [ecx + ebx - 1]
mov byte [esi*8 + 0x45653c], al
mov eax, 0x66666667
mov byte [esi*8 + 0x45653d], 0
inc esi
imul dword [edi]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jl 0x415870
cmp dword [0x459cd4], 0
jne 0x4158d1
push 0x1000000
call fcn.0042475b
add esp, 4
mov dword [0x459cd4], eax
add eax, 0x800000
mov dword [0x456b7c], eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 0x415150
push 0
mov dword [0x456b40], eax
mov eax, dword [ebp - 0x210]
push 0x65
push eax
mov dword [0x45a7f8], eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00422702
mov esp, ebp
pop ebp
ret 0x10