Function at 0x14002ff94
Capabilities:
Check if file exists
Get disk size

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0xa0
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0x90], rax
and dword [rsp + 0x48], 0
xor eax, eax
mov rbx, r8
mov rdi, rdx
mov r12d, ecx
lea ebp, [rax + 3]
mov qword [rsp + 0x50], rax
test rdx, rdx
jne 0x14002fffc
mov edx, 0xc0000000
call qword [0x14019c140]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140030189
mov edx, 0x80000000
mov ecx, r12d
call qword [0x14019c140]
jmp 0x1400300dd
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r12d, 0x3a
cmp eax, 2
jne 0x140030019
xor ecx, ecx
cmp word [rdi + 2], r12w
jmp 0x14003003a
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, ebp
jne 0x14003003f
lea rcx, [rdi + 2]
lea rdx, [0x140148b18]
call fcn.14010e1b8
xor ecx, ecx
test eax, eax
sete cl
jmp 0x140030041
xor ecx, ecx
mov edx, 0xc0000000
test ecx, ecx
je 0x140030113
mov rax, qword [str.._:]
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x80]
mov qword [rcx], rax
mov eax, dword [0x140148b10]
mov r12d, 0x20000000
mov dword [rcx + 8], eax
movzx eax, word [0x140148b14]
xor r9d, r9d
mov word [rcx + 0xc], ax
movzx eax, word [rdi]
lea rcx, [rsp + 0x80]
mov r8d, ebp
mov dword [rsp + 0x28], r12d
mov word [rsp + 0x88], ax
mov dword [rsp + 0x20], ebp
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140030189
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x80]
xor r9d, r9d
mov r8d, ebp
mov edx, 0x80000000
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], ebp
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140030189
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1400300fd
lea eax, [rsi + 2]
jmp 0x1400302cb
lea rcx, str.Error_opening_device:
call fcn.14002ecf8
mov eax, 2
jmp 0x1400302cb
mov rcx, rdi
call qword [0x14019c148]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140030189
mov edx, 0x80000000
mov rcx, rdi
call qword [0x14019c148]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x140030189
call qword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 1
je 0x14003017f
sub eax, 0x56
je 0x14003017f
sub eax, r12d
je 0x140030167
sub eax, 0x7a
je 0x140030167
cmp eax, 0x101b
je 0x140030167
mov rcx, rdi
call fcn.14002ecf8
jmp 0x14003017f
call fcn.14010df94
lea rdx, str.Not_a_mount_point:__1_ws__n
mov r8, rdi
lea rcx, [rax + 0x60]
call fcn.14002ec70
mov eax, 9
jmp 0x1400302cb
and qword [rsp + 0x38], 0
lea rax, [rsp + 0x40]
lea r8, [rsp + 0x48]
mov qword [rsp + 0x30], rax
and dword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
mov r9d, 0x10
mov edx, 0x7c0d0
mov rcx, rsi
mov dword [rsp + 0x48], 1
mov qword [rsp + 0x50], rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400301db
mov rcx, rdi
call fcn.14002ecf8
jmp 0x1400302c0
and qword [rsp + 0x38], 0
lea rax, [rsp + 0x40]
mov ebx, 8
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x7405c
mov rcx, rsi
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140030240
mov rcx, rdi
call fcn.14002ecf8
call fcn.14010df94
lea rdx, str._1_ws_:_Is_that_drive_really_an_ImDisk_drive_
lea rcx, [rax + 0x60]
mov r8, rdi
call fcn.14002ec70
mov ebp, 2
jmp 0x1400302c0
and qword [rsp + 0x38], 0
lea rax, [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
xor r8d, r8d
mov edx, 0x70000
mov rcx, rsi
mov dword [rsp + 0x28], 0x18
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x140030216
mov ecx, dword [rsp + 0x7c]
mov rax, qword [rsp + 0x60]
and qword [rsp + 0x38], 0
cqo
lea r8, [rsp + 0x58]
mov r9d, ebx
idiv rcx
mov edx, 0x900f0
mov rcx, rsi
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
and dword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor ebp, ebp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebp
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.14010bcc0
add rsp, 0xa0
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret