Function at 0x140018948
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 0x1400387d6
cmp rax, qword [rbx]
jne 0x1400387d6
lock inc dword [rbx + 0x10]
add rbx, 0x18
mov qword [rbp + 0x48], rbx
mov rax, qword [0x1400ddb40]
mov r8d, dword [rax - 0x10]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x48]
call fcn.1400191d8
mov rdx, qword [0x1400ddb40]
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.140016110
test dil, dil
jne 0x14003882a
cmp dword [rbx - 0x10], r13d
jle 0x140018a08
xor edx, edx
lea rcx, [rbp + 0x48]
call fcn.140011544
cmp ax, 0x2f
je 0x14003885a
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 0x140038a98
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 0x140038a98
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 0x140038a98
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 0x140038892
cmp rax, qword [r14]
jne 0x140038892
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.140010bd8
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 0x1400388e9
lea rcx, [rdi - 0x18]
call fcn.140016110
nop
mov rcx, r14
call fcn.140016110
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 0x140038806
call fcn.14005e618
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 0x14001899b
mov r8d, dword [rbx - 0x10]
mov rax, qword [0x1400ddb40]
sub r8d, dword [rax - 0x10]
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x48]
call fcn.140019820
nop
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x28]
jmp 0x140038880
mov r8d, dword [rbx - 0x10]
dec r8d
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x48]
call fcn.140019820
nop
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x20]
add rcx, 0xffffffffffffffe8
call fcn.140016110
mov rbx, qword [rbp + 0x48]
jmp 0x1400189ed
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 0x1400388c0
call fcn.14005e618
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 0x140018a8d
mov r8d, 1
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x58]
call fcn.140019820
nop
mov rcx, qword [rax]
movzx esi, word [rcx]
sub esi, 0x5c
jne 0x140038912
movzx esi, word [rcx + 2]
movzx eax, r13w
sub esi, eax
mov rcx, qword [rbp - 0x18]
add rcx, 0xffffffffffffffe8
call fcn.140016110
test esi, esi
jne 0x140038958
mov r8d, dword [rdi - 0x10]
dec r8d
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x58]
call fcn.1400191d8
nop
mov rdx, rax
lea rcx, [rbp + 0x58]
call fcn.14000b560
nop
mov rcx, qword [rbp - 0x10]
add rcx, 0xffffffffffffffe8
call fcn.140016110
mov rdi, qword [rbp + 0x58]
jmp 0x1400388e9
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 0x140018aba
lea rdx, [0x1400dd9d8]
lea rcx, [rbp + 0x50]
call fcn.140019a9c
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 0x1400389b4
lea rcx, [rbp + 0x50]
call fcn.140014460
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 0x1400389dd
lea rcx, [rsi - 0x18]
call fcn.140016110
nop
jmp 0x140018aba
lea rcx, [rbp + 0x50]
call fcn.1400a5084
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.14008fe08
nop
mov rbx, qword [rbp - 8]
mov rcx, rbx
call fcn.140011574
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 0x140038a43
lea rcx, [rbp + 0x50]
call fcn.140014460
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.1400a5084
nop
lea rcx, [rbx - 0x18]
call fcn.140016110
lea rdx, [rbp + 0x50]
mov rcx, r12
call fcn.14000b560
nop
lea rcx, [rsi - 0x18]
call fcn.140016110
nop
lea rcx, [rdi - 0x18]
call fcn.140016110
nop
mov rcx, r14
call fcn.140016110
mov al, 1
jmp 0x140018ace
lea rcx, [rbx - 0x18]
jmp 0x140018ac7