Function at 0x1400f6540
Capabilities:
Get disk information

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rdi, qword [0x14022c040]
mov rbx, rcx
mov esi, edx
mov rcx, qword [rdi]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rbx + 0xf0]
test rcx, rcx
je 0x140027bb0
mov dword [rsp + 0x24], 0xffffffff
call 0x1400f6840
test eax, eax
je 0x140027b84
cmp eax, 1
je 0x140027b68
mov eax, 3
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rdi]
jne 0x140027bb7
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
lea r8, [rsp + 0x24]
lea rdx, str.fsmonitor.allowremote
mov rcx, rbx
call fcn.1400118e0
mov eax, dword [rsp + 0x24]
test eax, eax
jle 0x140027ba0
mov rax, qword [rsp + 0x28]
sub rax, qword [rdi]
jne 0x140027bb7
mov edx, esi
mov rcx, rbx
add rsp, 0x30
pop rbx
pop rsi
pop rdi
jmp 0x1400f64f0
mov eax, 4
jmp 0x140027b52
mov eax, 2
jmp 0x140027b52
call fcn.1401d96b0
nop
nop dword [rax]
push rbx
sub rsp, 0x30
mov rbx, qword [0x14022c040]
lea rdx, str.core.virtualfilesystem
mov r8, qword [rbx]
mov qword [rsp + 0x28], r8
lea r8, [rsp + 0x20]
call fcn.1400115c0
cmp eax, 1
sbb eax, eax
and eax, 4
add eax, 1
mov rdx, qword [rsp + 0x28]
sub rdx, qword [rbx]
jne 0x1400f6530
add rsp, 0x30
pop rbx
ret
call fcn.1401d96b0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push r13
mov eax, 0x40d8
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401d92a0
sub rsp, rax
mov rbp, qword [0x14022c040]
mov rax, qword [rbp]
mov qword [rsp + 0x40c8], rax
xor eax, eax
mov rbx, rcx
lea rsi, [rsp + 0xc0]
mov rdi, rdx
call fcn.1400d1230
mov r9d, 0xffffffff
mov rdx, rbx
mov rcx, rsi
mov r8d, 0x1000
mov r12d, eax
call fcn.1400d25c0
test eax, eax
js 0x1400f67a0
mov r9d, r12d
mov r8d, 0x104
mov edx, eax
mov rcx, rsi
call fcn.1400d3b90
test eax, eax
js 0x1400f67ae
mov rcx, rsi
call sub.msvcrt.dll_wcslen
movzx edx, word [rsp + rax*2 + 0xbe]
cmp dx, 0x5c
je 0x1400f65e1
cmp dx, 0x2f
je 0x1400f65e1
mov dword [rsp + rax*2 + 0xc0], 0x5c
lea r13, [rsp + 0x20c0]
xor r9d, r9d
mov edx, 0x1000
mov rcx, rsi
mov r8, r13
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x1400f67ae
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov r12, qword [0x14022c9d0]
movabs rdx, 0x100000000
mov esi, eax
movabs rax, 0x1ffffffff
and rax, qword [r12 + 8]
cmp rax, rdx
jne 0x1400f66b0
cmp esi, 4
je 0x1400f66e2
mov dword [rdi], 0
movabs rax, 0x1ffffffff
and rax, qword [r12 + 8]
movabs rdx, 0x100000000
cmp rax, rdx
je 0x1400f6688
mov eax, dword [rdi]
mov qword [rsp + 0x20], rbx
mov r8, r12
lea r9, str._s_is_remote:__d
mov edx, 0x75
lea rcx, str.compat_fsmonitor_fsm_path_utils_win32.c
mov dword [rsp + 0x28], eax
call fcn.14009f750
xor eax, eax
mov rdx, qword [rsp + 0x40c8]
sub rdx, qword [rbp]
jne 0x1400f6835
add rsp, 0x40d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov dword [rsp + 0x30], esi
mov r8, r12
lea r9, str.DriveType__s_L_ls___u_
mov edx, 0x69
mov qword [rsp + 0x28], r13
lea rcx, str.compat_fsmonitor_fsm_path_utils_win32.c
mov qword [rsp + 0x20], rbx
call fcn.14009f750
cmp esi, 4
jne 0x1400f663e
mov dword [rdi], 1
xor r9d, r9d
mov edx, 0x80000000
mov rcx, r13
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x1400f6803
mov r9d, 0x74
lea r8, [rsp + 0x40]
mov edx, 0xd
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
test eax, eax
je 0x1400f67ca
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movabs rax, 0x1ffffffff
and rax, qword [r12 + 8]
movabs rdx, 0x100000000
cmp rax, rdx
je 0x1400f6688
mov eax, dword [rsp + 0x44]
mov qword [rsp + 0x20], r13
mov r8, r12
mov edx, 0x24
lea r9, str.check_remote_protocol__ls__remote_protocol__8.8lx
lea rcx, str.compat_fsmonitor_fsm_path_utils_win32.c
mov dword [rsp + 0x28], eax
call fcn.14009f750
jmp 0x1400f6644
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
je 0x1400f67c0
mov eax, 0xffffffff
jmp 0x1400f668a
call rbx
mov dword [rax], 0x26
jmp 0x1400f67ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str._GLE__ld__unable_to_get_protocol_information_for__ls
mov ebx, eax
mov rax, qword [str.PF__]
mov eax, dword [rax]
test eax, eax
je 0x1400f67ee
call fcn.1401d81b8
mov rcx, rax
mov r8, r13
mov edx, ebx
call fcn.1400b6bf0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400f67ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str._GLE__ld__unable_to_open_for_read__ls
mov ebx, eax
mov rax, qword [str.PF__]
cmp dword [rax], 0
je 0x1400f6826
call fcn.1401d81b8
mov rcx, rax
mov r8, r13
mov edx, ebx
call fcn.1400b6bf0
jmp 0x1400f67ae
call fcn.1401d96b0
nop
nop dword [rax + rax]
push rbx
sub rsp, 0x40
mov rbx, qword [0x14022c040]
mov rdx, qword [rbx]
mov qword [rsp + 0x38], rdx
lea rdx, [rsp + 0x20]
call 0x1400f6540
test eax, eax
jne 0x1400f6880
mov eax, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rbx]
jne 0x1400f6887
add rsp, 0x40
pop rbx
ret
mov eax, 0xffffffff
jmp 0x1400f6866
call fcn.1401d96b0
nop
nop dword [rax]
xor eax, eax
ret