Function at 0x414e30
Capabilities:
Create directory
Get common file path
Move file
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x188
mov eax, dword [0x452004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push str.VentoyStartService_..._n
push 1
mov esi, ecx
call fcn.00401a20
add esp, 8
test esi, esi
js 0x41512c
cmp esi, dword [0x453b88]
jge 0x41512c
imul ebx, esi, 0x20c
add ebx, dword [0x453b40]
je 0x41512c
movsx eax, byte [ebx]
lea esi, [ebx + 0xc4]
push edi
lea edi, [ebx + 0x1c4]
push edi
push esi
push eax
push str.Start_service_at__C:__s__s_..._n
push 1
call fcn.00401a20
mov al, byte [ebx]
mov byte [0x45a920], al
mov word [0x45a921], 0x5c3a
mov byte [0x45a923], 0
mov eax, dword [ebx + 0x40]
mov dword [0x45abf0], eax
mov eax, dword [ebx + 0x204]
mov dword [0x45adb4], eax
mov eax, dword [ebx + 0x208]
mov dword [0x45adb8], eax
lea eax, [ebx + 0x44]
push eax
push 0x40
push 0x45abf4
call fcn.00427bdd
lea eax, [ebx + 0x84]
push eax
push 0x40
push 0x45ac34
call fcn.00427bdd
push esi
push pe_nt_image_headers32
push 0x45ac74
call fcn.00427bdd
push edi
push 0x40
push 0x45ad74
call fcn.00427bdd
add esp, 0x44
push 0x45a920
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x45a920
push eax
push str.SetCurrentDirectoryA__u___s__n
push 1
call fcn.00401a20
add esp, 0x10
mov byte [ebp - 0x188], 0
lea eax, [ebp - 0x188]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x188]
push eax
push str.CurDir__s__n
push 1
call fcn.00401a20
add esp, 0xc
lea ecx, [ebp - 0x188]
mov eax, 0x45a920
pop edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x414f90
test dl, dl
je 0x414f8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x414f90
add eax, 2
add ecx, 2
test dl, dl
jne 0x414f70
xor eax, eax
jmp 0x414f95
sbb eax, eax
or eax, 1
test eax, eax
je 0x414fa8
push str.Failed_to_change_current_directory.
push 1
call fcn.00401a20
add esp, 8
push str.ventoy
mov byte [0x45a922], 0
call fcn.00402170
add esp, 4
test eax, eax
je 0x4150c3
cmp dword [0x45abf0], 0
je 0x4150bc
push str.ventoy_directory_already_exist__check_case_sensitive._n
push 1
call fcn.00401a20
push str.ventoy
lea eax, [ebp - 0x84]
push 0x80
push eax
call fcn.00427bdd
xor edx, edx
lea ecx, [ebp - 0x84]
call fcn.00401f90
mov esi, eax
lea eax, [ebp - 0x84]
push esi
push eax
push str.ventoy_path_case_actual_path_is___s___count:_d__n
push 1
call fcn.00401a20
add esp, 0x24
test esi, esi
je 0x4150e3
push str.ventoy
lea eax, [ebp - 0x84]
push eax
push str.ventoy_directory_case_mismatch__rename__s______s__n
push 1
call fcn.00401a20
add esp, 0x10
lea eax, [ebp - 0x84]
push str.ventoy
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x41508c
push str.ventoy
lea eax, [ebp - 0x84]
push eax
push str.Rename___s______s__success_n
push 1
call fcn.00401a20
add esp, 0x10
mov edx, 0x45addc
mov ecx, 0x45adbc
call fcn.00421d80
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422702
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ventoy
lea eax, [ebp - 0x84]
push eax
push str.Rename___s______s__failed__u_n
push 1
call fcn.00401a20
mov eax, dword [0x453b4c]
add esp, 0x14
push 0x10
push dword [eax]
push dword [eax + 0x10]
jmp 0x415124
push str.ventoy_directory_already_exist__no_need_to_check_case_sensitive._n
jmp 0x4150d9
push 0
push str.ventoy
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x415102
push str.Create_ventoy_directory_success._n
push 1
call fcn.00401a20
add esp, 8
mov edx, 0x45addc
mov ecx, 0x45adbc
call fcn.00421d80
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422702
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Create_ventoy_directory_failed__u._n
push 1
call fcn.00401a20
mov eax, dword [0x453b4c]
add esp, 0xc
push 0x10
push dword [eax]
push dword [eax + 0xc]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 4]
mov eax, 1
pop esi
xor ecx, ebp
pop ebx
call fcn.00422702
mov esp, ebp
pop ebp
ret