Function at 0x180039090
Capabilities:
Get disk information

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x920
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x970], rbx
mov rax, qword [0x1800f0938]
xor rax, rsp
mov qword [rsp + 0x910], rax
mov rbp, rdx
mov r15, rcx
mov qword [rsp + 0x68], rdx
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r14
lea rdx, [rsp + 0x110]
mov ecx, 0x3fe
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x180039668
mov r8d, eax
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x28]
call fcn.1800385f0
test al, al
je 0x180039668
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], r14
mov word [rsp + 0x78], r14w
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r14
mov word [rsp + 0xa0], r14w
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], r14
mov word [rsp + 0xc8], r14w
mov dword [rsp + 0xe8], r14d
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xf8], r14
mov byte [rsp + 0x100], r14b
mov rax, r14
mov qword [rsp + 0x58], rax
xor r13b, r13b
mov byte [rsp + 0x20], r13b
mov r8d, r14d
mov dword [rsp + 0x48], r14d
mov rsi, r14
mov qword [rsp + 0x50], r14
mov r12, r14
movabs rbx, 0x6666666666666667
mov rdi, qword [rsp + 0x30]
test rdi, rdi
je 0x1800394ff
mov rcx, qword [rsp + 0x38]
sub rcx, rdi
mov rax, rbx
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8d, edx
jae 0x1800394ff
cmp rsi, rdx
jb 0x1800391fe
call fcn.18009a780
mov rdi, qword [rsp + 0x30]
cmp qword [r12 + rdi + 0x20], 8
jb 0x18003920d
mov rcx, qword [r12 + rdi + 8]
jmp 0x180039212
lea rcx, [r12 + rdi + 8]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x1800394c1
mov r13d, r14d
mov rcx, rbp
call fcn.180005240
test eax, eax
je 0x180039372
xor esi, esi
mov rdi, qword [rsp + 0x30]
jmp 0x18003924a
movabs rbx, 0x6666666666666667
mov rax, qword [rbp + 8]
test rax, rax
je 0x180039273
mov rcx, qword [rbp + 0x10]
sub rcx, rax
mov rax, rbx
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r14, rdx
jb 0x18003927d
call fcn.18009a780
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rbp + 8]
test rdi, rdi
je 0x1800392b0
mov rcx, qword [rsp + 0x38]
sub rcx, rdi
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp qword [rsp + 0x50], rdx
jb 0x1800392ba
call fcn.18009a780
mov rdi, qword [rsp + 0x30]
mov r10, qword [rsi + rbx + 0x18]
cmp qword [rsi + rbx + 0x20], 8
jb 0x1800392ce
mov rdx, qword [rsi + rbx + 8]
jmp 0x1800392d3
lea rdx, [rsi + rbx + 8]
mov r9, qword [r12 + rdi + 0x18]
cmp r9, r9
cmovb r9, r9
cmp qword [r12 + rdi + 0x20], 8
jb 0x1800392ee
mov rcx, qword [r12 + rdi + 8]
jmp 0x1800392f3
lea rcx, [r12 + rdi + 8]
mov r8, r10
cmp r9, r10
cmovb r8, r9
test r8, r8
je 0x18003932e
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x18003931a
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x180039302
jmp 0x18003932e
mov r8d, 1
cmp word [rcx], ax
mov eax, 0xffffffff
cmovb r8d, eax
jmp 0x180039331
xor r8d, r8d
movsxd rax, r8d
test r8d, r8d
jne 0x180039346
cmp r9, r10
jb 0x18003934e
xor eax, eax
cmp r9, r10
setne al
test eax, eax
je 0x1800394c8
add r13d, 1
add r14, 1
add rsi, 0x28
mov rcx, rbp
call fcn.180005240
cmp r13d, eax
jb 0x180039240
mov rsi, qword [rsp + 0x50]
jmp 0x180039377
mov rdi, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x48]
test rdi, rdi
je 0x1800393ad
mov rcx, qword [rsp + 0x38]
sub rcx, rdi
movabs r13, 0x6666666666666667
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rbx, rdx
jb 0x1800393c1
jmp 0x1800393b7
movabs r13, 0x6666666666666667
call fcn.18009a780
mov rdi, qword [rsp + 0x30]
lea rax, [rbx + rbx*4]
lea rcx, [rdi + rax*8]
lea rdx, [rsp + 0x70]
call fcn.180038840
test al, al
je 0x1800394bc
lea rcx, [rsp + 0xc0]
call fcn.180039960
test al, al
je 0x1800394b5
mov rax, qword [rsp + 0xf8]
cmp qword [rsp + 0x58], rax
jae 0x1800394ad
mov qword [rsp + 0x58], rax
mov r8, qword [rsp + 0x30]
test r8, r8
je 0x180039433
mov rcx, qword [rsp + 0x38]
sub rcx, r8
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x18003943d
call fcn.18009a780
mov r8, qword [rsp + 0x30]
cmp qword [r12 + r8 + 0x20], 8
jb 0x18003944c
mov rax, qword [r12 + r8 + 8]
jmp 0x180039451
lea rax, [r12 + r8 + 8]
movzx ebx, word [rax]
cmp qword [r15 + 0x20], 1
jae 0x18003946c
mov r8, qword [r15 + 0x18]
mov edx, 1
mov rcx, r15
call fcn.180003d30
cmp qword [r15 + 0x20], 8
jb 0x18003947c
lea rax, [r15 + 8]
mov rcx, qword [rax]
jmp 0x180039483
lea rax, [r15 + 8]
mov rcx, rax
mov word [rcx], bx
mov qword [r15 + 0x18], 1
cmp qword [r15 + 0x20], 8
jb 0x180039498
mov rax, qword [rax]
mov word [rax + 2], 0
mov r13b, 1
mov byte [rsp + 0x20], r13b
mov rdi, qword [rsp + 0x30]
jmp 0x1800394d2
movzx r13d, byte [rsp + 0x20]
jmp 0x1800394c1
mov r13b, byte [rsp + 0x20]
jmp 0x1800394c1
mov r13b, byte [rsp + 0x20]
mov rdi, qword [rsp + 0x30]
jmp 0x1800394d2
mov rsi, qword [rsp + 0x50]
mov r13b, byte [rsp + 0x20]
mov r8d, dword [rsp + 0x48]
add r8d, 1
mov dword [rsp + 0x48], r8d
add rsi, 1
mov qword [rsp + 0x50], rsi
add r12, 0x28
xor r14d, r14d
movabs rbx, 0x6666666666666667
jmp 0x1800391c1
cmp qword [rsp + 0xe0], 8
jb 0x18003951c
mov rcx, qword [rsp + 0xc8]
call fcn.180098980
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], r14
mov word [rsp + 0xc8], 0
cmp qword [rsp + 0xb8], 8
jb 0x180039557
mov rcx, qword [rsp + 0xa0]
call fcn.180098980
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r14
mov word [rsp + 0xa0], 0
cmp qword [rsp + 0x90], 8
jb 0x18003958f
mov rcx, qword [rsp + 0x78]
call fcn.180098980
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x90], 7
mov qword [rsp + 0x88], r14
mov word [rsp + 0x78], 0
test rdi, rdi
je 0x1800395fa
mov rsi, qword [rsp + 0x38]
cmp rdi, rsi
je 0x1800395f2
lea rbx, [rdi + 0x20]
nop
cmp qword [rbx], 8
jb 0x1800395cf
mov rcx, qword [rbx - 0x18]
call fcn.180098980
mov qword [rbx], 7
mov qword [rbx - 8], r14
mov word [rbx - 0x18], 0
add rbx, 0x28
lea rax, [rbx - 0x20]
cmp rax, rsi
jne 0x1800395c0
mov rdi, qword [rsp + 0x30]
mov rcx, rdi
call fcn.180098980
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r14
mov rbx, qword [rbp + 8]
test rbx, rbx
je 0x180039654
mov rdi, qword [rbp + 0x10]
cmp rbx, rdi
je 0x18003964b
nop
nop
cmp qword [rbx + 0x20], 8
jb 0x180039630
mov rcx, qword [rbx + 8]
call fcn.180098980
mov qword [rbx + 0x20], 7
mov qword [rbx + 0x18], r14
mov word [rbx + 8], 0
add rbx, 0x28
cmp rbx, rdi
jne 0x180039620
mov rcx, qword [rbp + 8]
call fcn.180098980
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], r14
mov al, r13b
jmp 0x18003971a
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1800396b7
mov rdi, qword [rsp + 0x38]
cmp rcx, rdi
je 0x1800396b2
lea rbx, [rcx + 0x20]
cmp qword [rbx], 8
jb 0x18003968f
mov rcx, qword [rbx - 0x18]
call fcn.180098980
mov qword [rbx], 7
mov qword [rbx - 8], r14
mov word [rbx - 0x18], 0
add rbx, 0x28
lea rax, [rbx - 0x20]
cmp rax, rdi
jne 0x180039680
mov rcx, qword [rsp + 0x30]
call fcn.180098980
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r14
mov rbx, qword [rbp + 8]
test rbx, rbx
je 0x18003970c
mov rdi, qword [rbp + 0x10]
cmp rbx, rdi
je 0x180039703
cmp qword [rbx + 0x20], 8
jb 0x1800396e8
mov rcx, qword [rbx + 8]
call fcn.180098980
mov qword [rbx + 0x20], 7
mov qword [rbx + 0x18], r14
mov word [rbx + 8], 0
add rbx, 0x28
cmp rbx, rdi
jne 0x1800396d8
mov rcx, qword [rbp + 8]
call fcn.180098980
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], r14
xor al, al
mov rcx, qword [rsp + 0x910]
xor rcx, rsp
call fcn.180099050
mov rbx, qword [rsp + 0x970]
add rsp, 0x920
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret