joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140006450
Capabilities:
Get common file path
Get disk size

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x170
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov ebx, ecx
lea rcx, str.X:WindowsSystem32imdisk.exe
mov rdi, rdx
mov esi, 1
call fcn.1400058b0
test eax, eax
je 0x1400064b5
lea rcx, str.imdisk.exe_already_exist__no_need_to_copy...
call fcn.140005180
lea r8, str.imdisk.exe
mov edx, 0x104
mov rcx, rdi
call fcn.14000d1e0
xor eax, eax
jmp 0x140006680
lea rcx, str.X:WindowsSystem32_ventoyimdisk.exe
call fcn.1400058b0
test eax, eax
je 0x1400064ec
lea rcx, str.imdisk.exe_already_copied__no_need_to_copy...
call fcn.140005180
lea r8, str.ventoyimdisk.exe
mov edx, 0x104
mov rcx, rdi
call fcn.14000d1e0
xor eax, eax
jmp 0x140006680
lea r8, str..PhysicalDrive_d
lea rcx, [rsp + 0x50]
mov r9d, ebx
mov edx, 0x104
call fcn.14000d244
xor r9d, r9d
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x50]
lea r8d, [r9 + 3]
mov edx, 0x80000000
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14000655d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x50]
lea rcx, str.Could_not_open_the_disk__s___error:_u
mov r8d, eax
call fcn.140005180
jmp 0x14000667e
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x48]
xor r8d, r8d
mov edx, 0x7405c
mov rcx, rbx
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400065b9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x50]
lea rcx, str.Could_not_get_phy_disk__s_size__error:_u
mov r8d, eax
call fcn.140005180
jmp 0x140006675
mov rcx, rbx
mov qword [0x14002b728], rbx
call fcn.1400062f0
lea rcx, str.Parse_FAT_fs...
mov qword [0x14002bc58], rax
call fcn.140005180
call fcn.140002510
call fcn.1400025e0
test eax, eax
jne 0x140006670
lea rdx, str.ventoyimdisk.sys
lea rcx, str._ventoy_imdisk_64_imdisk.sys
call fcn.140005f40
lea rdx, str.ventoyimdisk.exe
lea rcx, str._ventoy_imdisk_64_imdisk.exe
call fcn.140005f40
lea rdx, str.ventoyimdisk.cpl
lea rcx, str._ventoy_imdisk_64_imdisk.cpl
call fcn.140005f40
lea rdx, [rsp + 0x50]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea r8, str._ventoyimdisk.sys
lea rcx, [rsp + 0x50]
mov edx, 0x104
call fcn.14000e484
lea rcx, [rsp + 0x50]
call fcn.140005300
test eax, eax
jne 0x140006670
lea r8, str.ventoyimdisk.exe
mov edx, 0x104
mov rcx, rdi
call fcn.14000d1e0
xor esi, esi
call fcn.140002650
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.14000d130
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1400066b0
Capabilities:
Create process on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x6f8
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x6e0], rax
mov rbp, r9
mov qword [rsp + 0x20], r9
mov rsi, r8
mov r9, r8
mov rbx, rdx
mov r8, rdx
mov rdx, rcx
mov rdi, rcx
lea rcx, str.VentoyRunImdisk___s____s____s____s_
call fcn.140005180
mov rcx, rdi
call fcn.140006240
lea r8, str._s__a__o__s__f___s___m__C:
lea rcx, [rsp + 0xe0]
movsx edi, al
mov r9, rsi
mov edx, 0x200
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbp
call fcn.14000d244
lea r8, [rsp + 0xe0]
lea rcx, str.mount_iso_to__C:_use_imdisk_cmd___s_
mov edx, edi
call fcn.140005180
mov rcx, rbx
neg rcx
movzx eax, byte [rbx]
test al, al
je 0x140006763
cmp al, 0x7f
ja 0x14000680c
inc rbx
lea rax, [rcx + rbx]
cmp rax, 0x104
jl 0x140006745
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
or dword [rsp + 0xac], 1
xor ebx, ebx
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0xe0]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
xor r8d, r8d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov word [rsp + 0xb0], bx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
lea rcx, str.This_is_ANSI_encoding
call fcn.140005180
lea rcx, str.Wait_for_imdisk_process_...
call fcn.140005180
mov rcx, qword [rsp + 0x50]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, str.imdisk_process_finished
call fcn.140005180
xor eax, eax
mov rcx, qword [rsp + 0x6e0]
xor rcx, rsp
call fcn.14000d130
add rsp, 0x6f8
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
or dword [rsp + 0xac], 1
lea rax, [rsp + 0x2e0]
xor ebx, ebx
lea r8, [rsp + 0xe0]
or r9d, 0xffffffff
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov word [rsp + 0xb0], bx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
inc eax
lea r8, [rsp + 0xe0]
or r9d, 0xffffffff
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x2e0]
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x2e0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
lea rcx, str.This_is_UTF8_encoding
jmp 0x1400067c3
Function at 0x140006d90
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x100
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r14d, ecx
mov edx, ecx
lea rcx, str.DeleteVentoyPart2MountPoint_Phy_u_...
mov sil, 0x41
mov dword [rsp + 0x40], 0x5c3a3f
call fcn.140005180
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
test eax, eax
je 0x140006f47
xor r15d, r15d
nop dword [rax]
test dil, 1
je 0x140006f3c
movsx ebp, sil
lea rcx, str._C:_ventoy_ventoy.cpio
mov edx, ebp
call fcn.1400058b0
test eax, eax
je 0x140006f3c
lea rcx, str.File__C:_ventoy_ventoy.cpio_exist
mov edx, ebp
call fcn.140005180
lea r8, str.._C:
lea rcx, [rsp + 0x70]
mov r9d, ebp
mov edx, 0x80
call fcn.14000d244
xor r9d, r9d
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x70]
lea r8d, [r9 + 3]
mov edx, 0x80000000
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x140006e8c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
lea rcx, str.Could_not_open_the_disk__s___error:_u
mov r8d, eax
call fcn.140005180
jmp 0x140006f23
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x44]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x48]
xor r8d, r8d
mov edx, 0x560000
mov rcx, rbx
mov dword [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140006f00
cmp dword [rsp + 0x48], r15d
je 0x140006f00
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x60]
mov r9, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
lea rdx, [rsp + 0x70]
lea rcx, str.LogicalDrive:_s_PhyDrive:_d_Offset:_llu_ExtentLength:_llu
mov qword [rsp + 0x20], rax
call fcn.140005180
mov ebx, dword [rsp + 0x50]
jmp 0x140006f26
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x70]
lea rcx, str.DeviceIoControl_IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS_failed__s__error:_u
mov r8d, eax
call fcn.140005180
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or ebx, 0xffffffff
lea rcx, str.PhyDisk_u_for__C
mov r8d, ebp
mov edx, ebx
call fcn.140005180
cmp ebx, r14d
je 0x140006f79
inc sil
shr edi, 1
jne 0x140006df0
mov eax, 1
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.14000d130
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
lea rcx, [rsp + 0x40]
mov byte [rsp + 0x40], sil
call qword [sym.imp.KERNEL32.dll_DeleteVolumeMountPointA]
xor eax, eax
jmp 0x140006f4c
Function at 0x140007870
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x30]
mov rdi, r9
lea rdx, str.SYSTEMCurrentControlSetServicesdiskEnum
mov r9d, 1
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea rdx, str.SYSTEMCurrentControlSetServicesdiskEnum
lea rcx, str.RegOpenKeyExA___s__Ret:_ld
mov r8d, eax
mov ebx, eax
call fcn.140005180
test ebx, ebx
jne 0x14000793d
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x3c]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
lea rdx, str.Count
xor r8d, r8d
mov dword [rsp + 0x3c], 4
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov r9d, dword [rsp + 0x3c]
lea rdx, str.Count
mov r8d, eax
mov eax, dword [rsp + 0x38]
lea rcx, str.RegQueryValueExA___s__ret:_u__Size:_u_Value:_u
mov dword [rsp + 0x20], eax
call fcn.140005180
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov dword [rdi], eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x140007942
mov eax, 1
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14000d130
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140008560
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r14
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r14, rdx
mov rbp, rcx
mov rdx, rcx
lea rcx, str.Get_file_version_for___s_
mov ebx, 1
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
call fcn.140005180
lea rdx, [rsp + 0x3c]
mov rcx, rbp
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov esi, eax
test eax, eax
jne 0x1400085d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_get_file_version_info_size:__u
mov edx, eax
call fcn.140005180
jmp 0x1400086d0
mov rcx, rsi
mov qword [rsp + 0x80], rdi
call fcn.14000d2a8
mov rdi, rax
test rax, rax
jne 0x1400085ff
lea rcx, str.malloc_failed__u
mov edx, esi
call fcn.140005180
jmp 0x1400086c8
mov edx, dword [rsp + 0x3c]
mov r9, rax
mov r8d, esi
mov rcx, rbp
call qword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
jne 0x140008628
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_get_file_version_info_:__u
jmp 0x1400086b9
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x30]
lea rdx, [0x140023e90]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x1400086ac
cmp dword [rsp + 0x38], 0
je 0x1400086ac
mov rcx, qword [rsp + 0x30]
mov edx, dword [rcx]
cmp edx, 0xfeef04bd
jne 0x1400086a3
movzx ebx, word [rcx + 0xa]
movzx esi, word [rcx + 0xe]
movzx eax, word [rcx + 0xc]
movzx r8d, word [rcx + 8]
lea rcx, str.FileVersionze:___u__u__u__u_
mov r9d, esi
mov edx, ebx
mov dword [rsp + 0x20], eax
call fcn.140005180
cmp ebx, 0xa
jne 0x140008696
mov eax, 0x4e20
cmp si, ax
jbe 0x140008696
mov ebx, 0xb
test r14, r14
je 0x14000869f
mov word [r14], bx
xor ebx, ebx
jmp 0x1400086c0
lea rcx, str.Invalid_verinfo_signature_0x_x
jmp 0x1400086bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.VerQueryValueA_failed__u
mov edx, eax
call fcn.140005180
mov rcx, rdi
call fcn.14000d268
mov rdi, qword [rsp + 0x80]
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14000d130
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop r14
pop rsi
pop rbp
ret
Function at 0x140008ba0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x2e0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov r9d, ecx
lea r8, str..PhysicalDrive_d
lea rcx, [rsp + 0x50]
xor ebx, ebx
mov edx, 0x80
mov dword [rsp + 0x48], 0x47005456
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x4c], 0x44480065
call fcn.14000d244
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 3]
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x140008c3d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0x50]
lea rcx, str.Could_not_open_the_disk__s___error:_u
mov r8d, eax
call fcn.140005180
xor eax, eax
jmp 0x140008ca3
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0xd0]
mov r8d, 0x200
mov rcx, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140008c88
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [rsp + 0x40]
lea rcx, str.ReadFile_failed__dwSize:_u__error:_u
mov r8d, eax
call fcn.140005180
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140008ca3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x260]
cmp rcx, qword [rsp + 0x48]
sete bl
mov eax, ebx
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.14000d130
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x2e0
pop rdi
ret
Function at 0x140008cd0
Capabilities:
Get file attributes

Disassembly:
mov r11, rsp
push rbp
push rdi
sub rsp, 0x268
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rbp, rdx
mov qword [r11 + 0x18], rbx
mov rdx, rcx
mov qword [r11 + 0x20], rsi
mov rdi, rcx
neg rdx
mov qword [r11 - 0x18], r14
movzx eax, byte [rcx]
test al, al
je 0x140008d24
cmp al, 0x7f
ja 0x140008dbc
inc rcx
lea rax, [rdx + rcx]
cmp rax, 0x104
jl 0x140008d06
or rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140008d30
cmp ebx, 4
jle 0x140008d88
lea rcx, [rdi - 4]
movsxd rbx, ebx
lea rdx, str..iso
add rcx, rbx
call fcn.14000d4b0
test eax, eax
jne 0x140008d88
lea r8, str._s.VTLRI
mov r9, rdi
mov edx, 0x104
mov rcx, rbp
mov byte [rbx + rdi - 4], al
call fcn.14000d244
mov rcx, rbp
mov byte [rbx + rdi - 4], 0x2e
call fcn.1400058b0
test eax, eax
jne 0x140008f2f
xor eax, eax
mov r14, qword [rsp + 0x260]
mov rsi, qword [rsp + 0x298]
mov rbx, qword [rsp + 0x290]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14000d130
add rsp, 0x268
pop rdi
pop rbp
ret
lea rax, [rsp + 0x40]
or rbx, 0xffffffffffffffff
xor r14d, r14d
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
mov r9d, ebx
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r9d, ebx
mov r8, rdi
inc eax
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rax, [rsp + 0x40]
mov rdi, rbx
inc rdi
cmp word [rax + rdi*2], r14w
jne 0x140008e10
cmp edi, 4
jle 0x140008d88
movsxd rsi, edi
lea rdx, [0x140024200]
lea rcx, [rsp + rsi*2 + 0x38]
call fcn.14000d5ac
test eax, eax
jne 0x140008d88
mov eax, 0x49
mov dword [rsp + rsi*2 + 0x3a], 0x540056
mov dword [rsp + rsi*2 + 0x3e], 0x52004c
mov word [rsp + rsi*2 + 0x42], ax
lea eax, [rdi + 2]
movsxd rcx, eax
add rcx, rcx
cmp rcx, 0x208
jae 0x140008f39
xor r9d, r9d
mov word [rsp + rcx + 0x40], r14w
mov qword [rsp + 0x30], r14
lea rcx, [rsp + 0x40]
lea edx, [r9 + 8]
lea r8d, [r9 + 1]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x140008d88
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x140008d88
lea rax, [rsp + 0x40]
nop dword [rax + rax]
cmp word [rax + rbx*2 + 2], r14w
lea rbx, [rbx + 1]
jne 0x140008ed0
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
lea r9d, [rbx + 1]
lea r8, [rsp + 0x40]
xor edx, edx
mov ecx, 0xfde9
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], eax
lea r9d, [rbx + 1]
lea r8, [rsp + 0x40]
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, 1
jmp 0x140008d8a
call fcn.14000ddd4
int3
Function at 0x140008f40
Capabilities:
Copy file
Create process on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x2f0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2e0], rax
mov ebx, edx
mov r8d, edx
mov rdi, rcx
mov rdx, rcx
lea rcx, str.MountVTLRI___s___u
call fcn.140005180
lea rdx, [rsp + 0x1e0]
mov ecx, ebx
call fcn.140006450
lea r9, str.ro_rem
lea r8, [rsp + 0x1e0]
lea rcx, str.VTLRI
mov rdx, rdi
call fcn.1400066b0
lea rdx, str.ventoyVTLRISRV.exe
lea rcx, [0x14002bc60]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
movsx r9d, byte [rdi]
lea r8, str.ventoyVTLRISRV.exe_VTLRI_SRV__C_Z
lea rcx, [rsp + 0xe0]
mov edx, 0x100
call fcn.14000d244
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
or dword [rsp + 0x8c], 1
xor ecx, ecx
lea rax, [rsp + 0xc0]
lea rdx, [rsp + 0xe0]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], ecx
mov word [rsp + 0x90], cx
mov dword [rsp + 0x20], ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
lea rdx, [rsp + 0xe0]
lea rcx, str.Process_cmdline___s_
call fcn.140005180
xor eax, eax
mov rcx, qword [rsp + 0x2e0]
xor rcx, rsp
call fcn.14000d130
mov rbx, qword [rsp + 0x310]
add rsp, 0x2f0
pop rdi
ret
Function at 0x140009730
Capabilities:
Create directory

Disassembly:
sub rsp, 0x28
lea rcx, str.ventoy
call fcn.140005780
test eax, eax
je 0x140009757
lea rcx, str.ventoy_directory_already_exist
call fcn.140005180
xor eax, eax
add rsp, 0x28
ret
lea rcx, str.ventoy_directory_not_exist__now_create_it.
call fcn.140005180
lea rcx, str.ventoy
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x140009750
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_create_ventoy_directory_err:_u
mov edx, eax
call fcn.140005180
mov eax, 1
add rsp, 0x28
ret
Function at 0x14000a180
Capabilities:
Copy file
Create process on windows
Move file
Self delete

Disassembly:
push rbx
sub rsp, 0x310
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x300], rax
lea rdx, [0x14002bc60]
lea rcx, str._1__Copy_New_file
call fcn.140005180
lea r9, [0x14002bc60]
lea r8, str._s_NEW
lea rcx, [rsp + 0xe0]
mov edx, 0x104
call fcn.14000d244
lea rdx, [rsp + 0xe0]
lea rcx, [0x14002bc60]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileA]
lea rdx, [0x14002bc60]
lea rcx, str._2__Remove_file___s_
call fcn.140005180
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
or dword [rsp + 0xac], 1
lea r9, [0x14002bc60]
lea r8, str.cmd.exe__c_del__F__Q__s
lea rcx, [rsp + 0x1f0]
xor ebx, ebx
mov edx, 0x104
mov word [rsp + 0xb0], bx
call fcn.14000d244
lea rax, [rsp + 0x50]
lea rdx, [rsp + 0x1f0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov rcx, qword [rsp + 0x50]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rdx, [0x14002bc60]
lea rcx, str._3__Copy_back_file___s_
call fcn.140005180
lea rdx, [0x14002bc60]
lea rcx, [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
xor eax, eax
mov rcx, qword [rsp + 0x300]
xor rcx, rsp
call fcn.14000d130
add rsp, 0x310
pop rbx
ret
Function at 0x14000a2d0
Capabilities:
Create process on windows
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x240
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov r9, qword [rdx + 0x10]
mov r8, qword [rdx + 8]
mov rdi, rdx
mov rdx, qword [rdx]
lea rcx, str.VTLRI_ServiceMain_start__s__s__s_...
xor esi, esi
mov ebx, esi
call fcn.140005180
mov rax, qword [rdi + 0x10]
movsx r9d, byte [rax]
lea r8, str._C:_
lea edx, [rsi + 0x10]
lea rcx, [rsp + 0xe0]
call fcn.14000d244
nop dword [rax]
nop word [rax + rax]
mov dword [rsp + 0x38], 0x40
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0xe0]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x14000a386
mov ecx, 0x190
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14000a3a7
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x14000a3a7
lea rdx, [rsp + 0xe0]
lea rcx, str._s_not_found
call fcn.140005180
inc ebx
cmp ebx, 3
jl 0x14000a340
mov rax, qword [rdi + 0x18]
lea r8, str.ventoyimdisk.exe__d__m__C:
lea rcx, [rsp + 0x130]
movsx r9d, byte [rax]
mov edx, 0x100
call fcn.14000d244
lea rdx, [rsp + 0x130]
lea rcx, str.Remove_disk_by___s_
call fcn.140005180
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetStartupInfoA]
or dword [rsp + 0xac], 1
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
lea rdx, [rsp + 0x130]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x28], esi
mov word [rsp + 0xb0], si
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov rcx, qword [rsp + 0x50]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor eax, eax
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.14000d130
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret