Function at 0x140045580
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x140173708]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x1e0]
mov rdi, r9
mov qword [rsp + 0x48], rax
mov ebx, r8d
xor eax, eax
mov qword [rsp + 0x50], r9
mov r15b, al
mov byte [rsp + 0x30], al
mov qword [rsp + 0x40], rax
mov r12b, al
mov byte [rsp + 0x32], al
mov r13d, eax
mov byte [rsp + 0x33], al
mov rsi, rdx
mov byte [rsp + 0x31], al
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x38], rax
mov rcx, qword [0x140173048]
lea rdx, [0x140173048]
lea r14d, [rax + 1]
cmp rcx, rdx
je 0x140045632
test byte [rcx + 0x1c], r14b
je 0x140045632
cmp byte [rcx + 0x19], 4
jb 0x140045632
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5e]
lea r8, [0x140153368]
call fcn.14000c328
xor eax, eax
lea rdx, [0x140173048]
mov byte [rdi], al
mov rcx, qword [0x140173048]
cmp rcx, rdx
je 0x1400456a9
test byte [rcx + 0x1c], r14b
je 0x140045672
cmp byte [rcx + 0x19], 4
jb 0x140045672
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov edx, 0x5f
mov r9, rsi
call fcn.140015150
mov rcx, qword [0x140173048]
lea rdx, [0x140173048]
cmp rcx, rdx
je 0x1400456a9
test byte [rcx + 0x1c], r14b
je 0x1400456a9
cmp byte [rcx + 0x19], 4
jb 0x1400456a9
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov edx, 0x60
mov r9d, ebx
call fcn.14000c354
mov rcx, qword [0x140173048]
lea rdx, [0x140173048]
test rsi, rsi
jne 0x1400456eb
mov ebx, 0x80070057
cmp rcx, rdx
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
lea edi, [rsi + 2]
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [rsi + 0x61]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
call fcn.14000c328
jmp 0x140045da3
mov edi, 2
sub ebx, edi
je 0x14004572e
sub ebx, edi
je 0x140045729
sub ebx, r14d
je 0x140045729
cmp ebx, r14d
je 0x140045729
mov ebx, 0x80070057
cmp rcx, rdx
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [rdi + 0x60]
jmp 0x1400456d6
mov r15b, r14b
jmp 0x140045733
mov byte [rsp + 0x30], r14b
lea r8, [rsp + 0x32]
xor edx, edx
mov rcx, rsi
call fcn.140090834
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x1400457b2
cmp ebx, 0x8078011a
je 0x1400457a8
cmp ebx, 0x8078006f
je 0x1400457a8
cmp ebx, 0x80780071
je 0x1400457a8
mov rcx, qword [0x140173048]
lea r8, [0x140173048]
cmp rcx, r8
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [rax + 0x63]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov r9d, ebx
call fcn.14000c354
jmp 0x140045da3
mov ebx, 0x80780083
jmp 0x140045da3
cmp byte [rsp + 0x32], al
jne 0x1400457a8
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
nop dword [rax + rax]
test eax, eax
jne 0x140045854
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, qword [0x140173048]
lea r8, [0x140173048]
cmp rcx, r8
je 0x14004581f
test byte [rcx + 0x1c], 1
je 0x14004581f
cmp byte [rcx + 0x19], dil
jb 0x14004581f
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov edx, 0x64
mov dword [rsp + 0x20], eax
mov r9, rsi
call fcn.14003fe00
lea eax, [rbx - 2]
mov r14d, 1
lea rdi, [0x140173048]
cmp eax, r14d
jbe 0x14004584a
test ebx, ebx
jle 0x140045daa
movzx ebx, bx
or ebx, 0x80070000
jmp 0x140045daa
mov ebx, 0x80780057
jmp 0x140045daa
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
nop dword [rax + rax]
sub eax, edi
je 0x140045d98
sub eax, 1
je 0x1400458b5
sub eax, 1
je 0x140045893
mov r14d, 1
lea rdi, [0x140173048]
cmp eax, r14d
jne 0x14004584a
mov ebx, 0x80780082
jmp 0x140045daa
lea r8, [0x140150944]
mov edx, 0x748
lea rcx, str.base_stor_blbengine_serviceengine.cpp
call fcn.1400906e0
mov ebx, 0x80780083
jmp 0x140045d9d
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x60]
call fcn.140135988
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14004596e
cmp ebx, 0x80780076
jne 0x140045922
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x1400459c2
test byte [rcx + 0x1c], r14b
je 0x1400459c2
cmp byte [rcx + 0x19], 4
jb 0x1400459c2
mov rcx, qword [rcx + 0x10]
lea edx, [r14 + 0x64]
lea r8, [0x140153368]
call fcn.14000c328
jmp 0x1400459c2
cmp ebx, 0x80070003
jne 0x140045934
mov ebx, 0x8078007c
jmp 0x140045d9d
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x65]
jmp 0x140045790
cmp byte [rsp + 0x31], al
je 0x1400459bc
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x1400459b2
test byte [rcx + 0x1c], r14b
je 0x1400459b2
cmp byte [rcx + 0x19], dil
jb 0x1400459b2
mov rcx, qword [rcx + 0x10]
lea edx, [r14 + 0x66]
lea r9, [rsp + 0x60]
lea r8, [0x140153368]
call fcn.140015150
mov ebx, 0x80780077
jmp 0x140045da3
mov r14d, 1
lea r8, [rsp + 0x34]
mov dl, r14b
lea rcx, [rsp + 0x60]
call fcn.140134c60
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x140045a2a
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
mov edx, 0x68
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov dword [rsp + 0x20], ebx
call fcn.1400151b8
jmp 0x140045da3
mov eax, dword [rsp + 0x34]
bt eax, 0xb
jae 0x140045a81
mov rcx, qword [0x140173048]
lea r8, [0x140173048]
cmp rcx, r8
je 0x140045a7a
test byte [rcx + 0x1c], r14b
je 0x140045a7a
cmp byte [rcx + 0x19], 4
jb 0x140045a7a
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x69
mov dword [rsp + 0x20], eax
lea r8, [0x140153368]
call fcn.1400151b8
mov rcx, qword [0x140173048]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x140045a88
mov rcx, qword [0x140173048]
or r14, 0xffffffffffffffff
test r15b, r15b
je 0x140045b49
mov rax, r14
inc rax
cmp word [rsi + rax*2], dx
jne 0x140045a98
cmp word [rsi + rax*2 - 2], 0x3a
jne 0x140045ae8
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045ade
test byte [rcx + 0x1c], r14b
je 0x140045ade
cmp byte [rcx + 0x19], dil
jb 0x140045ade
mov rcx, qword [rcx + 0x10]
lea edx, [r14 + 0x69]
mov r9, rsi
lea r8, [0x140153368]
call fcn.140015150
mov ebx, 0x80780057
jmp 0x140045da3
mov byte [rsp + 0x31], dl
mov rcx, rsi
lea rdx, [rsp + 0x31]
call fcn.140103aa8
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x140045b39
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
lea r14d, [rdx + 1]
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x6a]
jmp 0x140045790
cmp byte [rsp + 0x31], dl
jne 0x140045b49
mov ebx, 0x80780057
jmp 0x140045d9d
inc r14
cmp word [rsi + r14*2], dx
jne 0x140045b49
mov r8, r14
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.msvcrt.dll__wcsnicmp]
nop dword [rax + rax]
xor ecx, ecx
test eax, eax
movzx r14d, cl
lea eax, [rcx + 1]
cmove r14d, eax
cmp byte [rsp + 0x30], cl
je 0x140045b91
test r14b, r14b
jne 0x140045b91
mov ebx, 0x80780057
mov r14d, eax
jmp 0x140045da3
test r15b, r15b
je 0x140045d8e
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140096fe4
mov ebx, eax
test eax, eax
jns 0x140045beb
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x6b]
jmp 0x140045790
mov r15, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.140134810
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x140045c3f
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x6c]
jmp 0x140045790
cmp byte [rsp + 0x30], cl
jne 0x140045c4f
mov ebx, 0x80780084
jmp 0x140045d9d
test r15, r15
je 0x140045ced
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140136524
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x140045cbb
mov rcx, qword [0x140173048]
lea rdi, [0x140173048]
cmp rcx, rdi
je 0x140045cab
test dword [rcx + 0x1c], 0x200
je 0x140045cab
cmp byte [rcx + 0x19], 3
jb 0x140045cab
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov edx, 0x6e
mov dword [rsp + 0x20], eax
mov r9, r15
call fcn.1400151b8
mov r13, qword [rsp + 0x38]
mov r14d, 1
jmp 0x140045daa
mov r13, qword [rsp + 0x38]
test r14b, r14b
je 0x140045cdd
mov rcx, r13
call fcn.140094270
xor ecx, ecx
test al, al
je 0x140045cdd
mov ebx, 0x80780193
jmp 0x140045d9d
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140045ced
mov qword [rax], r13
mov r13, rcx
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140103928
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x140045d38
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x6e]
jmp 0x140045790
cmp byte [rsp + 0x30], al
je 0x140045d45
mov ebx, 0x80780085
jmp 0x140045d9d
lea rdx, [rsp + 0x33]
mov rcx, rsi
call fcn.140103b8c
mov ebx, eax
test eax, eax
jns 0x140045d89
mov rcx, qword [0x140173048]
lea rax, [0x140173048]
mov r14d, 1
cmp rcx, rax
je 0x140045da3
test byte [rcx + 0x1c], r14b
je 0x140045da3
cmp byte [rcx + 0x19], dil
jb 0x140045da3
lea edx, [r14 + 0x6f]
mov r9, rsi
jmp 0x140045a11
mov r12b, byte [rsp + 0x33]
mov rax, qword [rsp + 0x50]
mov byte [rax], r12b
jmp 0x140045d9d
mov ebx, 0x8078012f
mov r14d, 1
lea rdi, [0x140173048]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r13, r13
je 0x140045dcf
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140173048]
cmp rcx, rdi
je 0x140045dfc
test byte [rcx + 0x1c], r14b
je 0x140045dfc
cmp byte [rcx + 0x19], 4
jb 0x140045dfc
mov rcx, qword [rcx + 0x10]
lea r8, [0x140153368]
mov edx, 0x71
call fcn.14000c328
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140007410
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret