Function at 0x4070f0
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
sub rsp, 0x328
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov qword [r11 - 8], rdi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov rax, qword [0x0045c120]
xor rax, rsp
mov qword [rsp + 0x2f0], rax
mov r13, rcx
mov dword [rsp + 0x20], 0x5c3a41
lea rdx, [r11 - 0x2a8]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov qword [rsp + 0x50], 0xf
xor r14d, r14d
mov qword [rsp + 0x48], r14
mov byte [rsp + 0x38], r14b
mov r9d, 0xf
lea r8, str.Logical_Drives:
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.00425d30
mov qword [rsp + 0x48], 0xf
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + 0xf], r14b
mov eax, 0xf
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x60], r14b
lea rbp, [rsp + 0x80]
cmp byte [rsp + 0x80], r14b
je 0x4076ef
lea r15, [0x00440ad0]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
not rcx
lea rbx, [rcx - 1]
lea rax, [rsp + 0x38]
mov r8, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x50]
cmp rdi, 0x10
cmovae rax, r8
mov rcx, qword [rsp + 0x48]
cmp rbp, rax
jb 0x407353
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
add rax, rcx
cmp rax, rbp
jbe 0x407353
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
mov r12, rbp
sub r12, rax
cmp rcx, r12
jae 0x40724b
call fcn.0043dc40
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
sub rax, r12
cmp rax, rbx
cmovb rbx, rax
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jbe 0x407270
lea rax, [rbx + rcx]
cmp rax, rcx
jae 0x40727f
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rbx, rbx
je 0x407431
lea rsi, [rbx + rcx]
cmp rsi, 0xfffffffffffffffe
jbe 0x4072a1
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rsi
jae 0x4072c2
mov r8, rcx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.00402010
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x4072ed
test rsi, rsi
jne 0x4072ed
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], sil
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x407431
test rsi, rsi
je 0x407431
lea rdx, [rsp + 0x38]
mov r8, qword [rsp + 0x38]
cmp rdi, 0x10
cmovae rdx, r8
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
sub rdi, rcx
add rcx, rax
lea r8, [rdx + r12]
mov r9, rbx
mov rdx, rdi
call fcn.00425d30
mov qword [rsp + 0x48], rsi
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + rsi], 0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x407431
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jbe 0x40736b
lea rax, [rbx + rcx]
cmp rax, rcx
jae 0x40737a
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rbx, rbx
je 0x407431
lea rsi, [rbx + rcx]
cmp rsi, 0xfffffffffffffffe
jbe 0x40739c
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rsi
jae 0x4073bd
mov r8, rcx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.00402010
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x4073e5
test rsi, rsi
jne 0x4073e5
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], sil
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x407431
test rsi, rsi
je 0x407431
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
sub rdi, rcx
add rcx, rax
mov r9, rbx
mov r8, rbp
mov rdx, rdi
call fcn.00425d30
mov qword [rsp + 0x48], rsi
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + rsi], 0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x38]
mov r8, qword [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
cmp r15, rax
jb 0x407584
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
add rax, rcx
cmp rax, r15
jbe 0x407584
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
mov r12, r15
sub r12, rax
cmp rcx, r12
jae 0x40748c
call fcn.0043dc40
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
sub rax, r12
mov esi, 1
cmp rax, rsi
cmovb rsi, rax
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rsi
jbe 0x4074b6
lea rax, [rsi + rcx]
cmp rax, rcx
jae 0x4074c5
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rsi, rsi
je 0x407648
lea rbx, [rsi + rcx]
cmp rbx, 0xfffffffffffffffe
jbe 0x4074e7
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rbx
jae 0x407508
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.00402010
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x407528
test rbx, rbx
jne 0x407528
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], bl
jmp 0x407648
test rbx, rbx
je 0x407648
lea rdx, [rsp + 0x38]
mov r8, qword [rsp + 0x38]
cmp rdi, 0x10
cmovae rdx, r8
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
sub rdi, rcx
add rcx, rax
lea r8, [r12 + rdx]
mov r9, rsi
mov rdx, rdi
call fcn.00425d30
mov qword [rsp + 0x48], rbx
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rbx + rax], 0
jmp 0x407648
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, 1
jbe 0x40759d
lea rax, [rcx + 1]
cmp rax, rcx
jae 0x4075ac
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
lea rbx, [rcx + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x4075c5
call fcn.0043db70
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rbx
jae 0x4075e6
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.00402010
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x407603
test rbx, rbx
jne 0x407603
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], bl
jmp 0x407648
test rbx, rbx
je 0x407648
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
sub rdi, rcx
add rcx, rax
mov r9d, 1
mov r8, r15
mov rdx, rdi
call fcn.00425d30
mov qword [rsp + 0x48], rbx
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rbx + rax], 0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x407690
movzx edi, byte [rbp]
mov byte [rsp + 0x20], dil
mov r8d, 0x1f4
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointA]
test eax, eax
je 0x407690
lea rdx, [rsp + 0xf0]
mov rcx, r13
call fcn.00427110
test eax, eax
je 0x4076ae
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
not rcx
add rbp, rcx
cmp byte [rbp], al
je 0x4076ea
jmp 0x4071d1
cmp qword [rsp + 0x78], 0x10
jb 0x4076c0
mov rcx, qword [rsp + 0x60]
call fcn.004185a4
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x60], 0
cmp qword [rsp + 0x50], 0x10
jb 0x4076e5
mov rcx, qword [rsp + 0x38]
call fcn.004185a4
mov al, dil
jmp 0x407726
mov rax, qword [rsp + 0x78]
cmp rax, 0x10
jb 0x4076ff
mov rcx, qword [rsp + 0x60]
call fcn.004185a4
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x60], 0
cmp qword [rsp + 0x50], 0x10
jb 0x407724
mov rcx, qword [rsp + 0x38]
call fcn.004185a4
mov al, 0x30
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.004252f0
mov rbx, qword [rsp + 0x338]
mov rbp, qword [rsp + 0x340]
mov rsi, qword [rsp + 0x348]
mov rdi, qword [rsp + 0x320]
mov r12, qword [rsp + 0x318]
mov r13, qword [rsp + 0x310]
mov r14, qword [rsp + 0x308]
mov r15, qword [rsp + 0x300]
add rsp, 0x328
ret