Function at 0x140004880
Capabilities:
Get disk information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov word [rbp + 0x1c], 0
mov dword [rbp + 0x18], 0x5c003a
xorps xmm6, xmm6
movups xmmword [rcx], xmm6
mov qword [rbp + 0x28], rcx
mov qword [rcx + 0x10], 0
movaps xmmword [rbp - 0x10], xmm6
mov qword [rbp], 0
mov qword [rbp + 8], 7
mov r14w, 1
mov si, 0x43
xor r12d, r12d
lea rdi, [rbp - 0x10]
xor r15d, r15d
xor r13d, r13d
cmp r14w, 0x19
je 0x140004c63
mov rcx, rdi
mov edx, esi
call fcn.140004de0
lea rbx, [rbp + 0x18]
mov rcx, rbx
call fcn.140016334
mov rcx, rdi
mov rdx, rbx
mov r8, rax
call fcn.140004f70
cmp qword [rbp + 8], 8
mov rax, rdi
jb 0x14000492d
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rcx
lea rcx, [rbp - 0x40]
lea rdx, [rbp - 0x60]
call fcn.140005150
cmp qword [rbp - 0x28], 8
lea rcx, [rbp - 0x40]
jb 0x140004955
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp - 0x60]
mov r8d, 3
mov r9d, 0xffffffff
call fcn.140011a04
xor ebx, ebx
cmp eax, 0x34
jg 0x140004990
lea ecx, [rax - 2]
cmp ecx, 2
jb 0x1400049a0
test eax, eax
jne 0x140004cc6
mov bl, 1
jmp 0x1400049a0
cmp eax, 0x35
je 0x1400049a0
cmp eax, 0x7b
jne 0x140004cc6
nop
mov rax, qword [rbp - 0x28]
cmp rax, 8
jb 0x1400049e6
mov rcx, qword [rbp - 0x40]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x1400049e1
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004cc1
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140011f2c
test bl, bl
je 0x140004a50
cmp qword [rbp + 8], 8
mov rcx, rdi
jb 0x1400049f8
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x140004a23
test eax, eax
je 0x140004a23
cmp r13, r15
je 0x140004a6a
mov rcx, r13
mov rdx, rdi
call fcn.1400055a0
add r13, 0x20
mov rax, qword [rbp + 0x28]
mov qword [rax + 8], r13
mov qword [rbp + 0x30], r12
mov rcx, rdi
lea rdx, [0x1400395f6]
xor r8d, r8d
call fcn.1400053d0
inc esi
mov r12, qword [rbp + 0x30]
inc r14d
jmp 0x1400048f0
mov rcx, rdi
lea rdx, [0x1400395f6]
xor r8d, r8d
call fcn.1400053d0
inc r14d
jmp 0x1400048f0
mov rbx, r15
sub rbx, r12
sar rbx, 5
lea r13, [rbx + 1]
mov rdx, rbx
shr rdx, 1
movabs rcx, 0x7ffffffffffffff
mov rax, rcx
sub rax, rdx
add rdx, rbx
cmp rdx, r13
cmovbe rdx, r13
cmp rbx, rax
cmova rdx, rcx
mov rax, rdx
shr rax, 0x3b
jne 0x140004ce8
mov rax, rdx
shl rax, 5
mov qword [rbp + 0x20], rax
cmp rdx, 0x80
mov qword [rbp - 0x20], rdx
jb 0x140004afc
movabs rax, 0x7ffffffffffffff
cmp rdx, rax
jae 0x140004ced
mov rax, qword [rbp + 0x20]
lea rcx, [rax + 0x27]
call fcn.140011ee8
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov rdx, rcx
mov qword [rbp + 0x30], rcx
mov qword [rcx - 8], rax
jmp 0x140004b16
test rdx, rdx
je 0x140004b10
mov rcx, qword [rbp + 0x20]
call fcn.140011ee8
mov qword [rbp + 0x30], rax
jmp 0x140004b16
xor eax, eax
mov qword [rbp + 0x30], rax
shl rbx, 5
mov rax, qword [rbp + 0x30]
lea rcx, [rax + rbx]
add rax, rbx
add rax, 0x20
mov qword [rbp - 0x18], rax
mov rdx, rdi
call fcn.1400055a0
cmp r12, r15
mov rbx, qword [rbp + 0x30]
je 0x140004b87
xor eax, eax
movups xmmword [rbx + rax + 0x10], xmm6
movups xmmword [rbx + rax], xmm6
movups xmm0, xmmword [r12 + rax]
movups xmm1, xmmword [r12 + rax + 0x10]
movups xmmword [rbx + rax + 0x10], xmm1
movups xmmword [rbx + rax], xmm0
mov qword [r12 + rax + 0x10], 0
mov qword [r12 + rax + 0x18], 7
mov word [r12 + rax], 0
lea rcx, [r12 + rax]
add rcx, 0x20
add rax, 0x20
cmp rcx, r15
jne 0x140004b40
test r12, r12
je 0x140004c41
cmp r12, r15
je 0x140004c04
mov rbx, r12
jmp 0x140004bd0
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140011f2c
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 7
mov word [rbx], 0
add rbx, 0x20
cmp rbx, r15
je 0x140004c04
mov rax, qword [rbx + 0x18]
cmp rax, 8
jb 0x140004bb2
mov rcx, qword [rbx]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140004bad
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jb 0x140004ba0
jmp 0x140004cc1
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax + 0x10]
sub rdx, r12
cmp rdx, 0x1000
jb 0x140004c35
mov rax, qword [r12 - 8]
add r12, 0xfffffffffffffff8
sub r12, rax
cmp r12, 0x20
jae 0x140004cc1
add rdx, 0x27
mov r12, rax
mov rbx, qword [rbp + 0x30]
mov rcx, r12
call fcn.140011f2c
mov rax, qword [rbp + 0x28]
mov qword [rax], rbx
shl r13, 5
add r13, rbx
mov qword [rax + 8], r13
mov r15, qword [rbp + 0x20]
add r15, rbx
mov qword [rax + 0x10], r15
jmp 0x140004a27
mov rax, qword [rbp + 8]
cmp rax, 8
jb 0x140004ca5
mov rcx, qword [rbp - 0x10]
lea rdx, [rax*2 + 2]
cmp rdx, 0x1000
jb 0x140004ca0
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140004cc1
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, r8
call fcn.140011f2c
mov rax, qword [rbp + 0x28]
movaps xmm6, xmmword [rbp + 0x40]
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14001582c
mov dword [rbp - 0x60], eax
lea rax, [0x140036de8]
mov qword [rbp - 0x58], rax
lea rcx, str.exists
lea rdx, [rbp - 0x60]
lea r8, [rbp - 0x40]
call fcn.140005260
call fcn.1400056a0
call fcn.1400056a0
int3