Function at 0x140040060
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1400fe3f8]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov r13, rdx
mov rsi, rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], rcx
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140040245
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
mov dword [rsp + 0x38], eax
xor ebx, ebx
mov dword [rsp + 0x30], ebx
lea esi, [rbx + 0x3b]
lea r12, [rbx - 1]
nop dword [rax + rax]
test dil, 1
je 0x14004022b
movzx eax, word [0x1400d694c]
mov word [rsp + 0x20], ax
movzx eax, byte [0x1400d694e]
mov byte [rsp + 0x22], al
lea eax, [rbx + 0x41]
mov byte [rsp + 0x20], al
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp - 0x70]
call fcn.14009f630
mov r8d, 0x104
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
test eax, eax
je 0x1400405ae
mov word [rsp + 0x24], si
mov qword [rsp + 0x48], 0
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x24]
lea rcx, [rbp - 0x70]
call fcn.1400b2614
mov rsi, rax
test rax, rax
je 0x140040226
mov rdi, r12
inc rdi
cmp byte [rsi + rdi], 0
jne 0x140040156
mov r14, r13
cmp qword [r13 + 0x18], 0x10
jb 0x14004016d
mov r14, qword [r13]
mov rax, qword [r13 + 0x10]
cmp rdi, rax
ja 0x1400401fa
test rdi, rdi
jne 0x140040183
xor ebx, ebx
jmp 0x1400401f1
sub rax, rdi
lea r15, [rax + r14]
movsx r12d, byte [rsi]
lea r8, [r15 + 1]
sub r8, r14
mov edx, r12d
mov rcx, r14
call fcn.14009ee00
mov rbx, rax
test rax, rax
je 0x1400401fa
nop dword [rax + rax]
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14009ee80
test eax, eax
je 0x1400401e1
inc rbx
lea r8, [r15 + 1]
sub r8, rbx
mov edx, r12d
mov rcx, rbx
call fcn.14009ee00
mov rbx, rax
test rax, rax
jne 0x1400401b0
jmp 0x1400401fa
sub rbx, r14
cmp rbx, 0xffffffffffffffff
je 0x1400401fa
mov r12, 0xffffffffffffffff
test rbx, rbx
je 0x14004027d
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x24]
xor ecx, ecx
call fcn.1400b2614
mov rsi, rax
test rax, rax
mov r12, 0xffffffffffffffff
jne 0x140040153
mov ebx, dword [rsp + 0x30]
mov edi, dword [rsp + 0x38]
mov esi, 0x3b
inc ebx
mov dword [rsp + 0x30], ebx
shr edi, 1
mov dword [rsp + 0x38], edi
cmp ebx, 0x20
jb 0x1400400d0
mov rsi, qword [rsp + 0x28]
mov rdx, r13
mov rcx, rsi
call fcn.1400059b0
mov rax, rsi
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.14009c8a0
mov rbx, qword [rsp + 0x200]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, r12
inc rax
cmp byte [rsi + rax], 0
jne 0x140040280
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x60], 0
mov esi, 0xf
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x50], 0
mov rcx, qword [r13 + 0x10]
cmp rcx, rax
jb 0x1400405d1
sub rcx, rax
mov r8, qword [rsp + 0x40]
cmp rcx, r8
cmovb r8, rcx
cmp qword [r13 + 0x18], 0x10
jb 0x1400402d1
mov r13, qword [r13]
lea rdx, [rax + r13]
lea rcx, [rsp + 0x50]
call fcn.140012bb0
nop
lea rax, [rsp + 0x50]
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x68]
cmp r15, 0x10
cmovae rax, rbx
movabs rcx, 0x7fffffffffffffff
movabs rdx, 0x8000000000000027
mov r8d, 0x16
cmp byte [rax], 0x2f
je 0x14004047a
lea rax, [rsp + 0x50]
cmp r15, 0x10
cmovae rax, rbx
cmp byte [rax], 0x5c
je 0x14004047a
mov rax, rcx
mov r13, qword [rsp + 0x60]
sub rax, r13
cmp rax, 1
jb 0x1400405d7
lea rax, [rsp + 0x50]
cmp r15, 0x10
cmovae rax, rbx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x70], 0
lea r12, [r13 + 1]
mov rdi, rsi
lea r14, [rsp + 0x70]
cmp r12, rsi
jbe 0x1400403e6
mov rdi, r12
or rdi, 0xf
cmp rdi, rcx
jbe 0x140040385
mov rdi, rcx
mov rax, rdx
jmp 0x1400403a6
cmp rdi, r8
cmovb rdi, r8
lea rcx, [rdi + 1]
cmp rcx, 0x1000
jb 0x1400403ca
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400405cb
mov rcx, rax
call fcn.14009c500
test rax, rax
je 0x1400405dd
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
mov rax, qword [rsp + 0x38]
jmp 0x1400403e1
test rcx, rcx
je 0x1400403de
call fcn.14009c500
mov r14, rax
mov rax, qword [rsp + 0x38]
jmp 0x1400403e1
xor r14d, r14d
mov qword [rsp + 0x70], r14
mov qword [rbp - 0x80], r12
mov qword [rbp - 0x78], rdi
mov byte [r14], 0x5c
lea rcx, [r14 + 1]
mov r8, r13
mov rdx, rax
call fcn.14009ef80
mov byte [r14 + r12], 0
cmp r15, 0x10
jb 0x14004043d
lea rdx, [r15 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140040435
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405dd
mov rcx, rbx
call fcn.14006b0f0
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rsp + 0x60], xmm1
mov r15, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x50]
movabs rdx, 0x8000000000000027
movabs rcx, 0x7fffffffffffffff
mov r12, 0xffffffffffffffff
lea r8d, [r12 + 0x17]
lea rax, [rsp + 0x20]
nop
inc r12
cmp byte [rax + r12], 0
jne 0x140040480
mov qword [rsp + 0x40], r12
mov rax, rcx
mov r14, qword [rsp + 0x60]
sub rax, r14
cmp rax, r12
jb 0x1400405d7
lea r13, [rsp + 0x50]
cmp r15, 0x10
cmovae r13, rbx
mov rax, qword [rsp + 0x28]
xor r9d, r9d
mov qword [rax], r9
mov qword [rax + 0x10], r9
mov qword [rax + 0x18], r9
add r12, r14
mov rdi, rax
cmp r12, 0xf
jbe 0x140040540
mov rsi, r12
or rsi, 0xf
cmp rsi, rcx
jbe 0x140040502
mov rsi, rcx
mov rcx, rdx
call fcn.14009c500
test rax, rax
je 0x1400405dd
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
mov rax, qword [rsp + 0x28]
jmp 0x14004053d
cmp rsi, 0x16
cmovb rsi, r8
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x140040526
lea rdx, [rcx + 0x27]
cmp rdx, rcx
jbe 0x1400405cb
jmp 0x1400404de
test rcx, rcx
je 0x14004053a
call fcn.14009c500
mov rdi, rax
mov rax, qword [rsp + 0x28]
jmp 0x14004053d
mov rdi, r9
mov qword [rax], rdi
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], rsi
mov rsi, qword [rsp + 0x40]
mov r8, rsi
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.14009ef80
lea rcx, [rdi + rsi]
mov r8, r14
mov rdx, r13
call fcn.14009ef80
mov byte [rdi + r12], 0
cmp r15, 0x10
jb 0x1400405a4
lea rdx, [r15 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14004059c
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405c5
mov rcx, rbx
call fcn.14006b0f0
mov rax, qword [rsp + 0x28]
jmp 0x140040253
mov rdx, r13
mov rcx, qword [rsp + 0x28]
call fcn.1400059b0
mov rax, qword [rsp + 0x28]
jmp 0x140040253
call fcn.1400a3548
nop
call fcn.140011790
nop
call fcn.1400118b0
nop
call fcn.140011890
int3
call fcn.1400a3548
int3