Function at 0x405d10
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 [0x0045f6c0]
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.00426220
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 0x40630f
lea r15, [0x004415c0]
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 0x405f73
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
add rax, rcx
cmp rax, rbp
jbe 0x405f73
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
mov r12, rbp
sub r12, rax
cmp rcx, r12
jae 0x405e6b
call fcn.0043e4b0
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 0x405e90
lea rax, [rbx + rcx]
cmp rax, rcx
jae 0x405e9f
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rbx, rbx
je 0x406051
lea rsi, [rbx + rcx]
cmp rsi, 0xfffffffffffffffe
jbe 0x405ec1
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rsi
jae 0x405ee2
mov r8, rcx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.00402120
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x405f0d
test rsi, rsi
jne 0x405f0d
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 0x406051
test rsi, rsi
je 0x406051
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.00426220
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 0x406051
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jbe 0x405f8b
lea rax, [rbx + rcx]
cmp rax, rcx
jae 0x405f9a
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rbx, rbx
je 0x406051
lea rsi, [rbx + rcx]
cmp rsi, 0xfffffffffffffffe
jbe 0x405fbc
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rsi
jae 0x405fdd
mov r8, rcx
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.00402120
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x406005
test rsi, rsi
jne 0x406005
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 0x406051
test rsi, rsi
je 0x406051
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.00426220
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 0x4061a4
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
add rax, rcx
cmp rax, r15
jbe 0x4061a4
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, r8
mov r12, r15
sub r12, rax
cmp rcx, r12
jae 0x4060ac
call fcn.0043e4b0
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 0x4060d6
lea rax, [rsi + rcx]
cmp rax, rcx
jae 0x4060e5
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
test rsi, rsi
je 0x406268
lea rbx, [rsi + rcx]
cmp rbx, 0xfffffffffffffffe
jbe 0x406107
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rbx
jae 0x406128
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.00402120
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x406148
test rbx, rbx
jne 0x406148
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], bl
jmp 0x406268
test rbx, rbx
je 0x406268
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.00426220
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 0x406268
mov rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, 1
jbe 0x4061bd
lea rax, [rcx + 1]
cmp rax, rcx
jae 0x4061cc
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
lea rbx, [rcx + 1]
cmp rbx, 0xfffffffffffffffe
jbe 0x4061e5
call fcn.0043e3e0
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
cmp rdi, rbx
jae 0x406206
mov r8, rcx
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.00402120
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
jmp 0x406223
test rbx, rbx
jne 0x406223
mov qword [rsp + 0x48], r14
lea rax, [rsp + 0x38]
cmp rdi, 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax], bl
jmp 0x406268
test rbx, rbx
je 0x406268
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.00426220
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 0x4062b0
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 0x4062b0
lea rdx, [rsp + 0xf0]
mov rcx, r13
call fcn.00428260
test eax, eax
je 0x4062ce
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
not rcx
add rbp, rcx
cmp byte [rbp], al
je 0x40630a
jmp 0x405df1
cmp qword [rsp + 0x78], 0x10
jb 0x4062e0
mov rcx, qword [rsp + 0x60]
call fcn.0041873c
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x60], 0
cmp qword [rsp + 0x50], 0x10
jb 0x406305
mov rcx, qword [rsp + 0x38]
call fcn.0041873c
mov al, dil
jmp 0x406346
mov rax, qword [rsp + 0x78]
cmp rax, 0x10
jb 0x40631f
mov rcx, qword [rsp + 0x60]
call fcn.0041873c
mov qword [rsp + 0x78], 0xf
mov qword [rsp + 0x70], r14
mov byte [rsp + 0x60], 0
cmp qword [rsp + 0x50], 0x10
jb 0x406344
mov rcx, qword [rsp + 0x38]
call fcn.0041873c
mov al, 0x30
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.00425570
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