Function at 0x1400d1ac0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x140293028]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov rsi, r8
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x50], rcx
xor r14d, r14d
mov r12d, r14d
mov dword [rsp + 0x30], r14d
lea rdi, [rcx + 0x48]
mov rax, qword [rdi + 8]
cmp qword [rdi], rax
jne 0x1400d1b67
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebx, eax
mov edx, 0x41
mov word [rbp - 0x10], dx
test eax, eax
je 0x1400d1b67
nop
test bl, 1
je 0x1400d1b5c
mov rax, qword [rdi + 8]
cmp rax, qword [rdi + 0x10]
je 0x1400d1b49
mov word [rax], dx
add qword [rdi + 8], 2
jmp 0x1400d1b5c
lea r8, [rbp - 0x10]
mov rdx, rax
mov rcx, rdi
call fcn.1400d66f0
movzx edx, word [rbp - 0x10]
inc dx
mov word [rbp - 0x10], dx
shr ebx, 1
jne 0x1400d1b30
mov rax, qword [rsi]
test rax, rax
je 0x1400d1b7a
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x48], rcx
jmp 0x1400d1b7f
mov qword [rsp + 0x48], r14
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
test rax, rax
je 0x1400d1b91
mov rcx, qword [rax + 0x20]
jmp 0x1400d1b94
mov rcx, r14
mov qword [rsp + 0x38], rcx
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rax
mov rax, rcx
test rax, rax
je 0x1400d2518
mov rax, qword [rcx + 8]
lea rdx, [0x140206c9b]
test rax, rax
cmovne rdx, rax
mov qword [rbp - 8], r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400d1be0
lea rcx, [rbp - 8]
call fcn.140010ea0
nop
mov rdi, qword [0x1402a1140]
mov rbx, qword [rdi + 8]
mov r14, rdi
mov r13, qword [rbp + 0x10]
mov rsi, qword [rbp + 8]
mov r15, qword [rbp - 8]
cmp byte [rbx + 0x19], 0
jne 0x1400d1c72
cmp r13, 0x10
setae r12b
nop dword [rax]
lea rcx, [rbx + 0x20]
lea rdx, [rbp - 8]
test r12b, r12b
cmovne rdx, r15
mov rdi, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1400d1c3d
mov rcx, qword [rcx]
mov r8, rdi
cmp rsi, rdi
cmovb r8, rsi
call fcn.1401a96f0
test eax, eax
je 0x1400d1ee2
js 0x1400d1eeb
mov r14, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x1400d1c20
mov rdi, qword [0x1402a1140]
mov r12d, dword [rsp + 0x30]
cmp byte [r14 + 0x19], 0
jne 0x1400d1cb4
lea rdx, [r14 + 0x20]
mov rbx, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1400d1c8b
mov rdx, qword [rdx]
lea rcx, [rbp - 8]
cmp r13, 0x10
cmovae rcx, r15
mov r8, rsi
cmp rbx, rsi
cmovb r8, rbx
call fcn.1401a96f0
test eax, eax
je 0x1400d1ef4
jns 0x1400d1efd
xor r14d, r14d
mov ecx, r14d
mov qword [rbp + 0xa8], rcx
or r12d, 1
cmp r13, 0x10
jb 0x1400d1d03
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x1400d1cf4
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2548
mov rcx, r15
call fcn.1401853a0
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
jne 0x1400d1f3f
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0xb0]
call fcn.1401a8d80
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
mov eax, 0x13c8
mov ecx, eax
mov eax, dword [rax + rbx]
mov edx, 0x13c0
mov esi, edx
test al, 1
jne 0x1400d1d56
or eax, 1
mov dword [rcx + rbx], eax
xor eax, eax
mov qword [rbx + rdx], rax
call fcn.140138a70
mov qword [rbx + rsi], rax
mov rax, qword [rbx + rsi]
mov qword [rbp + 0xb0], rax
mov dword [rbp + 0xb8], 3
lea rcx, [rbp + 0xc0]
call fcn.14000f010
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400d90b6.0]
cmp dword [rbp + 0xb8], eax
setl byte [rbp + 0x1b8]
mov dword [rsp + 0x30], r12d
jl 0x1400d1ec9
mov esi, r12d
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], 0xf
mov byte [rbp + 0x18], 0
mov r8d, 0xd
lea rdx, str.Unknown_node
lea rcx, [rbp + 0x18]
call fcn.140010ea0
nop
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0xb0]
call fcn.140012210
mov r8, rax
lea rcx, [rbp + 0x60]
call fcn.140145440
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x40]
mov rcx, r8
call fcn.1400127b0
mov rbx, rax
mov qword [rbp - 8], r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], 0xf
mov r8d, 9
lea rdx, str.:_ignored
lea rcx, [rbp - 8]
call fcn.140010ea0
or esi, 6
mov dword [rsp + 0x30], esi
lea rdx, [rbp - 8]
mov rcx, rbx
call fcn.140012210
mov rdx, qword [rbp + 0x10]
cmp rdx, 0x10
jb 0x1400d1e77
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d1e72
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d254e
call fcn.1401853a0
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
mov rdx, qword [rbp + 0x30]
cmp rdx, 0x10
jb 0x1400d1ec2
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d1ebd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2554
call fcn.1401853a0
mov byte [rbp + 0x1b8], 1
lea rcx, [rbp + 0xb0]
call fcn.14000afe0
nop
mov rcx, qword [rbp + 0xa8]
jmp 0x1400d24da
cmp rdi, rsi
jae 0x1400d1c5a
mov rbx, qword [rbx + 0x10]
jmp 0x1400d1c60
cmp rsi, rbx
jb 0x1400d1cb4
cmp r14, rdi
je 0x1400d1cb4
xor ebx, ebx
mov ecx, ebx
mov qword [rbp + 0xa8], rbx
mov r8, qword [r14 + 0x78]
test r8, r8
je 0x1400d1f37
mov rax, qword [r8]
lea rdx, [rbp + 0x70]
mov rcx, r8
mov rax, qword [rax]
call qword [case.0x1400d90b6.0]
mov rcx, rax
mov qword [rbp + 0xa8], rax
xor r14d, r14d
jmp 0x1400d1cc1
mov rax, qword [rsp + 0x50]
mov r14, qword [rax + 0x48]
mov qword [rsp + 0x40], r14
mov r15, qword [rax + 0x50]
mov qword [rsp + 0x68], r15
mov dword [rsp + 0x30], r12d
cmp r14, r15
je 0x1400d24da
mov dword [rsp + 0x30], r12d
nop dword [rax]
lea rcx, [rbp + 0x60]
call fcn.140145440
mov rbx, rax
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x1400d2058
mov ecx, dword [rax]
and ecx, 0xf
dec ecx
cmp ecx, 1
ja 0x1400d2058
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400d2058
cmp qword [rcx + 0x18], rax
jne 0x1400d2058
mov rcx, qword [rax]
shr rcx, 8
sub rax, rcx
mov edx, 2
mov rcx, qword [rax]
call fcn.14013b320
mov rdi, rax
test rax, rax
je 0x1400d2058
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x18]
mov qword [rdi + 0x18], rax
mov rdx, qword [rcx + 0x28]
cmp qword [rdx + 0x30], 0
je 0x1400d1ff4
mov qword [rdx + 0x30], rdi
jmp 0x1400d1ff8
mov qword [rax + 0x20], rdi
mov rax, qword [rcx + 0x28]
mov qword [rdi + 0x28], rax
mov qword [rdi + 0x30], rcx
mov qword [rcx + 0x28], rdi
mov ecx, dword [rdi]
and ecx, 0xf
lea eax, [rcx - 2]
test eax, 0xfffffffa
jne 0x1400d2046
cmp ecx, 3
je 0x1400d2046
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rbx + rax], 0
jne 0x1400d2023
lea rcx, [rdi + 8]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8d, 0x20
mov rdx, rdi
call fcn.14014eef0
xor ebx, ebx
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400d205e
mov rax, qword [rcx + 0x38]
jmp 0x1400d2061
xor ebx, ebx
mov edi, ebx
jmp 0x1400d2048
mov rax, rbx
mov qword [rbp - 8], rax
mov qword [rbp], rcx
movups xmm0, xmmword [rbp - 8]
movups xmmword [rbp + 0x40], xmm0
mov r12, qword [rbp + 0x48]
mov r13, qword [rbp + 0x40]
nop dword [rax]
test r13, r13
jne 0x1400d2093
cmp r12, rcx
je 0x1400d23f1
test r13, r13
je 0x1400d209c
mov rcx, qword [r13 + 0x10]
test rcx, rcx
jne 0x1400d20a3
lea rcx, [0x140206c9b]
mov qword [rsp + 0x70], rcx
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], 0
jne 0x1400d20b0
mov qword [rsp + 0x78], rax
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rbp + 0x40], xmm0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x18]
call fcn.140157910
nop
test r13, r13
je 0x1400d20e4
mov rdx, qword [r13 + 8]
test rdx, rdx
jne 0x1400d20eb
lea rdx, [0x140206c9b]
mov rax, rbx
nop
lea rcx, [0x140210c4c]
movzx ecx, byte [rcx + rax]
inc rax
cmp cl, byte [rdx + rax - 1]
jne 0x1400d2267
cmp rax, 5
jne 0x1400d20f0
movzx eax, word [r14]
mov qword [rbp - 8], rbx
mov esi, 7
mov qword [rbp + 0x10], rsi
mov r15d, 1
mov qword [rbp + 8], r15
mov word [rbp - 8], ax
mov word [rbp - 6], bx
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x58], rsi
mov word [rbp + 0x40], bx
lea r8d, [rsi + 7]
lea rdx, str._DRIVE_LETTER_
lea rcx, [rbp + 0x40]
call fcn.14000b550
or dword [rsp + 0x30], 8
mov rax, rbx
cmp qword [rbp + 0x28], 0
jbe 0x1400d21ea
mov r14, qword [rbp + 0x50]
nop dword [rax]
lea r9, [rbp + 0x40]
cmp qword [rbp + 0x58], 8
cmovae r9, qword [rbp + 0x40]
lea rcx, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae rcx, qword [rbp + 0x18]
mov qword [rsp + 0x20], r14
mov r8, rax
mov rdx, qword [rbp + 0x28]
call fcn.1400d6810
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400d21e3
lea r9, [rbp - 8]
cmp rsi, 8
cmovae r9, qword [rbp - 8]
mov qword [rsp + 0x20], r15
mov r14, qword [rbp + 0x50]
mov r8, r14
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.1400d40a0
sub rbx, r14
mov r15, qword [rbp + 8]
lea rax, [r15 + 1]
add rax, rbx
mov rsi, qword [rbp + 0x10]
cmp rax, qword [rbp + 0x28]
jb 0x1400d2170
xor ebx, ebx
mov r14, qword [rsp + 0x40]
mov rdx, qword [rbp + 0x58]
cmp rdx, 8
jb 0x1400d222b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d2225
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2567
call fcn.1401853a0
nop
cmp rsi, 8
jb 0x1400d2267
lea rdx, [rsi*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d2262
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d256d
call fcn.1401853a0
test r13, r13
je 0x1400d2275
mov rsi, qword [r13 + 8]
test rsi, rsi
jne 0x1400d227c
lea rsi, [0x140206c9b]
test rdi, rdi
je 0x1400d22fa
mov eax, dword [rdi]
and eax, 0xf
cmp eax, 2
je 0x1400d2290
cmp eax, 7
jne 0x1400d22fa
mov rax, qword [rdi]
shr rax, 8
mov rcx, rdi
sub rcx, rax
mov rcx, qword [rcx]
call fcn.14013b2b0
mov rbx, rax
test rax, rax
je 0x1400d22fa
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400d22c8
mov rax, qword [rcx + 0x18]
mov qword [rax + 0x20], rbx
mov qword [rbx + 0x18], rax
mov qword [rcx + 0x18], rbx
jmp 0x1400d22d0
mov qword [rdi + 0x38], rbx
mov qword [rax + 0x18], rbx
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rsi + rax], 0
jne 0x1400d22d7
lea rcx, [rbx + 8]
mov qword [rsp + 0x20], rax
mov r9, rsi
mov r8d, 0x20
mov rdx, rbx
call fcn.14014eef0
lea rax, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae rax, qword [rbp + 0x18]
mov qword [rbp - 0x80], rax
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x78], rax
movaps xmm0, xmmword [rbp - 0x80]
movdqa xmmword [rbp + 0x40], xmm0
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 8]
call fcn.1401577f0
mov r9, rax
cmp qword [rax + 0x18], 0x10
jb 0x1400d2337
mov r9, qword [rax]
test rbx, rbx
je 0x1400d2365
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r9 + rax], 0
jne 0x1400d2343
lea rcx, [rbx + 0x10]
mov qword [rsp + 0x20], rax
mov r8d, 0x10
mov rdx, rbx
call fcn.14014eef0
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 0x10
jb 0x1400d23a1
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d239b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2573
call fcn.1401853a0
nop
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x1400d23e1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d23dc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2542
call fcn.1401853a0
mov r13, qword [r13 + 0x20]
mov rcx, qword [rsp + 0x38]
xor ebx, ebx
jmp 0x1400d2080
mov rsi, qword [rsp + 0x50]
add rsi, 0xb8
mov rax, qword [rsp + 0x60]
inc qword [rax]
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rdi
mov qword [rbp - 0x18], rbx
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
je 0x1400d2434
mov rax, qword [rcx]
lea rdx, [rbp - 0x50]
mov rax, qword [rax]
call qword [case.0x1400d90b6.0]
mov qword [rbp - 0x18], rax
mov rdi, qword [rsi]
movabs rax, 0x2aaaaaaaaaaaaaa
cmp qword [rsi + 8], rax
je 0x1400d255a
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], rbx
mov ecx, 0x60
call fcn.140185648
mov rbx, rax
mov rcx, qword [rbp - 0x60]
mov qword [rax + 0x10], rcx
mov rcx, qword [rbp - 0x58]
mov qword [rax + 0x18], rcx
lea rcx, [rax + 0x20]
xor r15d, r15d
mov qword [rcx + 0x38], r15
lea rdx, [rbp - 0x50]
call fcn.1400b8360
nop
inc qword [rsi + 8]
mov rcx, qword [rdi + 8]
mov qword [rbx], rdi
mov qword [rbx + 8], rcx
mov qword [rbp - 0x68], r15
mov qword [rdi + 8], rbx
mov qword [rcx], rbx
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x1400d24bf
mov rax, qword [rcx]
lea rdx, [rbp - 0x50]
cmp rcx, rdx
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x1400d90b6.0]
add r14, 2
mov qword [rsp + 0x40], r14
cmp r14, qword [rsp + 0x68]
jne 0x1400d1f70
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
je 0x1400d24f6
lea rdx, [rbp + 0x70]
cmp rcx, rdx
mov rax, qword [rcx]
setne dl
mov rax, qword [rax + 0x20]
call qword [case.0x1400d90b6.0]
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x30]
mov rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rbp + 0x60], rax
mov r12d, dword [rsp + 0x30]
xor r14d, r14d
jmp 0x1400d1ba4
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.140185380
mov rbx, qword [rsp + 0x328]
add rsp, 0x2d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401b3c00
nop
call fcn.1401b3c00
nop
call fcn.1401b3c00
nop
call fcn.1401b3c00
nop
lea rcx, str.list_too_long
call fcn.140187494
nop
call fcn.1401b3c00
nop
call fcn.1401b3c00
int3
call fcn.1401b3c00
int3