Function at 0x140018988
Capabilities:
Get disk information

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
mov rbp, rsp
sub rsp, 0x50
mov r12, rcx
xor r13d, r13d
mov rsi, qword [rcx]
lea rbx, [rsi - 0x18]
mov rcx, qword [rbx]
mov rax, qword [rcx]
movabs r10, 0xb3651e715a5ef170
mov rax, qword [rax + 0x20]
call qword [case.0x140001f80.0]
mov rcx, rax
cmp dword [rbx + 0x10], r13d
jl 0x1400394b4
cmp rax, qword [rbx]
jne 0x1400394b4
lock inc dword [rbx + 0x10]
add rbx, 0x18
mov qword [rbp + 0x48], rbx
mov rax, qword [0x1400dfb60]
mov r8d, dword [rax - 0x10]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x48]
call fcn.140019218
mov rdx, qword [0x1400dfb60]
mov rcx, qword [rax]
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__wcsicmp]
nop dword [rax + rax]
test eax, eax
sete dil
mov rcx, qword [rbp - 0x30]
add rcx, 0xffffffffffffffe8
call fcn.140016150
test dil, dil
jne 0x140039508
cmp dword [rbx - 0x10], r13d
jle 0x140018a48
xor edx, edx
lea rcx, [rbp + 0x48]
call fcn.140011584
cmp ax, 0x2f
je 0x140039538
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathIsUNCW]
nop dword [rax + rax]
test eax, eax
jne 0x140039776
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathIsUNCServerW]
nop dword [rax + rax]
test eax, eax
jne 0x140039776
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathIsUNCServerShareW]
nop dword [rax + rax]
test eax, eax
jne 0x140039776
lea r14, [rbx - 0x18]
mov rcx, qword [r14]
mov rax, qword [rcx]
movabs r10, 0xb3651e715a5ef170
mov rax, qword [rax + 0x20]
call qword [case.0x140001f80.0]
mov rcx, rax
cmp dword [r14 + 0x10], r13d
jl 0x140039570
cmp rax, qword [r14]
jne 0x140039570
mov rdi, r14
lock inc dword [r14 + 0x10]
mov rbx, qword [rbp + 0x48]
lea rax, [rdi + 0x18]
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x58]
call fcn.140010c18
mov rdi, qword [rbp + 0x58]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetDriveTypeW]
nop dword [rax + rax]
cmp eax, 4
je 0x1400395c7
lea rcx, [rdi - 0x18]
call fcn.140016150
nop
mov rcx, r14
call fcn.140016150
xor al, al
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rax]
lea rdi, [rbx + 8]
movabs r10, 0x9230265a36d2c270
mov r8d, 2
mov edx, dword [rdi]
mov rax, qword [rax]
call qword [case.0x140001f80.0]
mov rbx, rax
test rax, rax
jne 0x1400394e4
call fcn.14005f438
int3
mov eax, dword [rdi]
mov dword [rbx + 8], eax
lea rcx, [rbx + 0x18]
mov eax, dword [rdi]
inc eax
movsxd rdx, eax
add rdx, rdx
mov r9, rdx
mov r8, rsi
call fcn.14000b934
nop
jmp 0x1400189db
mov r8d, dword [rbx - 0x10]
mov rax, qword [0x1400dfb60]
sub r8d, dword [rax - 0x10]
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x48]
call fcn.140019860
nop
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x28]
jmp 0x14003955e
mov r8d, dword [rbx - 0x10]
dec r8d
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x48]
call fcn.140019860
nop
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x20]
add rcx, 0xffffffffffffffe8
call fcn.140016150
mov rbx, qword [rbp + 0x48]
jmp 0x140018a2d
mov rax, qword [rax]
movabs r10, 0x9230265a36d2c270
mov r8d, 2
mov edx, dword [r14 + 8]
mov rax, qword [rax]
call qword [case.0x140001f80.0]
mov rdi, rax
test rax, rax
jne 0x14003959e
call fcn.14005f438
int3
mov eax, dword [r14 + 8]
mov dword [rdi + 8], eax
lea r8, [r14 + 0x18]
lea rcx, [rdi + 0x18]
mov eax, dword [r14 + 8]
inc eax
movsxd rdx, eax
add rdx, rdx
mov r9, rdx
call fcn.14000b934
nop
jmp 0x140018acd
mov r8d, 1
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x58]
call fcn.140019860
nop
mov rcx, qword [rax]
movzx esi, word [rcx]
sub esi, 0x5c
jne 0x1400395f0
movzx esi, word [rcx + 2]
movzx eax, r13w
sub esi, eax
mov rcx, qword [rbp - 0x18]
add rcx, 0xffffffffffffffe8
call fcn.140016150
test esi, esi
jne 0x140039636
mov r8d, dword [rdi - 0x10]
dec r8d
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x58]
call fcn.140019218
nop
mov rdx, rax
lea rcx, [rbp + 0x58]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x10]
add rcx, 0xffffffffffffffe8
call fcn.140016150
mov rdi, qword [rbp + 0x58]
jmp 0x1400395c7
mov dword [rbp + 0x40], r13d
lea r8, [rbp + 0x40]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.MPR.dll_WNetGetConnectionW]
nop dword [rax + rax]
cmp eax, 0xea
jne 0x140018afa
lea rdx, [0x1400df9f8]
lea rcx, [rbp + 0x50]
call fcn.140019adc
nop
mov edx, dword [rbp + 0x40]
inc edx
mov rsi, qword [rbp + 0x50]
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edx
or eax, ecx
jge 0x140039692
lea rcx, [rbp + 0x50]
call fcn.1400144a0
mov rsi, qword [rbp + 0x50]
lea r8, [rbp + 0x40]
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.MPR.dll_WNetGetConnectionW]
nop dword [rax + rax]
test eax, eax
je 0x1400396bb
lea rcx, [rsi - 0x18]
call fcn.140016150
nop
jmp 0x140018afa
lea rcx, [rbp + 0x50]
call fcn.1400a5ea4
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathSkipRootW]
nop dword [rax + rax]
sub rax, rbx
sar rax, 1
mov r9d, dword [r14 + 8]
sub r9d, eax
mov r8d, eax
lea rdx, [rbp - 8]
lea rcx, [rbp + 0x48]
call fcn.140090c28
nop
mov rbx, qword [rbp - 8]
mov rcx, rbx
call fcn.1400115b4
lea edx, [rax + 1]
add edx, dword [rsi - 0x10]
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edx
or eax, ecx
jge 0x140039721
lea rcx, [rbp + 0x50]
call fcn.1400144a0
mov rsi, qword [rbp + 0x50]
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathAppendW]
nop dword [rax + rax]
lea rcx, [rbp + 0x50]
call fcn.1400a5ea4
nop
lea rcx, [rbx - 0x18]
call fcn.140016150
lea rdx, [rbp + 0x50]
mov rcx, r12
call fcn.14000b560
nop
lea rcx, [rsi - 0x18]
call fcn.140016150
nop
lea rcx, [rdi - 0x18]
call fcn.140016150
nop
mov rcx, r14
call fcn.140016150
mov al, 1
jmp 0x140018b0e
lea rcx, [rbx - 0x18]
jmp 0x140018b07