Function at 0x140121e49
Capabilities:
Get disk information

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x14030c028]
xor rax, rsp
mov qword [rsp + 0x280], rax
lea rbp, [rsp + 0x70]
mov rcx, rbp
call fcn.1400231ae
mov rcx, rbp
call fcn.14012166c
mov ebx, eax
cmp byte [rbp + 0x17], 0
jns 0x140121e93
mov rcx, qword [rsp + 0x70]
call fcn.140255d7c
mov bpl, 1
test bl, bl
jne 0x140122115
xorps xmm0, xmm0
lea rbx, [rsp + 0x50]
movaps xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov rcx, rdi
mov rdx, rbx
call fcn.14012194c
test al, al
je 0x140121f04
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x30]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x14029de10]
movaps xmmword [rdi], xmm0
mov rcx, rdi
mov rdx, rsi
call fcn.1400231ae
mov al, byte [rdi + 0x17]
test al, al
js 0x140121f0b
je 0x14012216e
movzx r9d, al
cmp word [rsp + r9*2 + 0x2e], 0x5c
je 0x140121f27
jmp 0x140121f74
xor ebp, ebp
jmp 0x140122104
mov r9, qword [rsp + 0x38]
test r9, r9
je 0x14012216e
mov rcx, qword [rsp + 0x30]
cmp word [rcx + r9*2 - 2], 0x5c
jne 0x140121f74
dec r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x70]
lea rsi, [rsp + 0x30]
mov rdx, rsi
xor r8d, r8d
call fcn.1400e9148
cmp byte [rsi + 0x17], 0
jns 0x140121f59
mov rcx, qword [rsp + 0x30]
call fcn.140255d7c
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x30], xmm0
mov al, byte [rsp + 0x47]
test al, al
jns 0x140121f7d
mov rdi, qword [rsp + 0x30]
cmp byte [rsp + 0x67], 0
jns 0x140121f89
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
call fcn.140272ffc
test eax, eax
je 0x14012200c
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rsi
call fcn.140121c8d
mov ebx, eax
mov rcx, rsi
call fcn.140121d47
test al, al
jne 0x140122014
test bl, bl
je 0x140122014
xorps xmm0, xmm0
lea rdi, [rsp + 0x70]
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
lea rcx, [rsp + 0x50]
mov rdx, rdi
call fcn.140121d8f
test al, al
je 0x14012204b
cmp byte [rsp + 0x47], 0
jns 0x140121fea
mov rsi, qword [rsp + 0x30]
cmp byte [rsp + 0x87], 0
jns 0x140121ff9
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
mov rdx, rsi
call fcn.140272ffc
test eax, eax
sete bpl
jmp 0x14012204d
mov bpl, 1
jmp 0x1401220f3
test al, al
je 0x1401220f1
mov qword [rsp + 0x278], 0
lea rsi, [rsp + 0x70]
mov r8d, 0x208
mov rcx, rsi
mov dl, 0xaa
call fcn.140259320
cmp byte [rsp + 0x47], 0
jns 0x14012206a
mov rax, qword [rsp + 0x30]
jmp 0x14012206f
xor ebp, ebp
cmp byte [rsp + 0x87], 0
jns 0x1401220f3
mov rcx, qword [rsp + 0x70]
call fcn.140255d7c
jmp 0x1401220f3
lea rax, [rsp + 0x30]
mov eax, dword [rax]
lea rcx, [rsp + 0x278]
mov dword [rcx], eax
mov rdx, rsi
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor ebp, ebp
cmp eax, 2
jb 0x1401220f3
cmp eax, 0x104
je 0x1401220f3
lea rcx, [rsp + 0x70]
call fcn.14027a424
mov esi, eax
movzx eax, byte [rsp + 0x47]
test al, al
jns 0x1401220b2
mov rax, qword [rsp + 0x38]
lea rcx, [rsi + rax]
add rcx, 0xfffffffffffffffe
movzx eax, byte [rsp + 0x67]
mov rdx, rax
test al, al
jns 0x1401220cb
mov rdx, qword [rsp + 0x58]
cmp rcx, rdx
jne 0x1401220f1
test al, al
jns 0x1401220db
mov rcx, qword [rsp + 0x50]
jmp 0x1401220e0
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x70]
mov r8, rsi
call fcn.1402731ac
test eax, eax
je 0x140122133
xor ebp, ebp
cmp byte [rsp + 0x47], 0
jns 0x140122104
mov rcx, qword [rsp + 0x30]
call fcn.140255d7c
cmp byte [rsp + 0x67], 0
jns 0x140122115
mov rcx, qword [rsp + 0x50]
call fcn.140255d7c
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140257200
mov eax, ebp
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
ret
cmp byte [rsp + 0x47], 0
jns 0x140122141
mov rdx, qword [rsp + 0x30]
jmp 0x140122146
lea rdx, [rsp + 0x30]
add rdx, 4
cmp byte [rsp + 0x67], 0
jns 0x140122158
mov rax, qword [rsp + 0x50]
jmp 0x14012215d
lea rax, [rsp + 0x50]
lea rcx, [rax + rsi*2]
call fcn.140272ffc
test eax, eax
sete bpl
jmp 0x1401220f3
lea rax, str.string::back__:_string_is_empty
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str._empty__
mov r8d, 0xdd9
call fcn.14004f520
int3