Function at 0x1400469f0
Capabilities:
Get disk information

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xa70
mov rax, qword [0x14008b5a0]
xor rax, rsp
mov qword [rsp + 0xa60], rax
mov r13, rcx
or rcx, 0xffffffffffffffff
xor r12d, r12d
xor eax, eax
mov rdi, r13
mov r14, rdx
repne scasw ax, word [rdi]
mov rsi, r12
mov ebp, r12d
not rcx
sub rcx, 1
cmp rcx, 2
lea rbx, [rcx + rcx]
jbe 0x140046a4c
cmp word [r13 + 2], 0x3a
je 0x140046d58
cmp qword [0x14008d468], rax
jne 0x140046b95
mov rcx, rbx
mov word [rsp + 0x260], ax
call fcn.14004c8b0
test rax, rax
mov rsi, rax
jne 0x140046a79
lea ebp, [rax + 8]
jmp 0x140046d58
lea rdx, [rsp + 0x260]
mov ecx, 0x3ff
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x140046d58
mov eax, dword [0x140071354]
lea rcx, [rsp + 0x44]
lea rbx, [rsp + 0x260]
mov dword [rcx], eax
movzx eax, word [0x140071358]
mov word [rcx + 4], ax
nop
nop
nop
movzx eax, word [rbx]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x44]
mov r8d, 0x104
mov word [rsp + 0x44], ax
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
je 0x140046b72
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x50]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
cmp rcx, 0x104
mov rdi, rcx
jae 0x140046b72
mov r8, rcx
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14004f0e4
test eax, eax
jne 0x140046b72
lea r12d, [rax + 1]
lea rax, [rsp + 0x44]
mov rcx, rsi
sub rcx, rax
lea rdx, [rsp + 0x44]
nop
movzx eax, word [rdx]
add rdx, 2
test ax, ax
mov word [rcx + rdx - 2], ax
jne 0x140046b30
lea rdx, [r13 + rdi*2]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rsi
repne scasw ax, word [rdi]
xor ecx, ecx
nop
nop
nop
movzx eax, word [rdx + rcx]
add rcx, 2
test ax, ax
mov word [rdi + rcx - 4], ax
jne 0x140046b60
movzx eax, word [rbx]
add rbx, 2
test ax, ax
jne 0x140046b72
test r12d, r12d
jne 0x140046d58
cmp word [rbx], bp
jne 0x140046ac0
jmp 0x140046d58
mov qword [rsp + 0xac0], r15
lea r15, [0x140080018]
test rsi, rsi
je 0x140046bb1
mov rcx, rsi
call fcn.14004ca6c
mov rcx, rbx
call fcn.14004c8b0
test rax, rax
mov rsi, rax
je 0x140046d1f
or rcx, 0xffffffffffffffff
xor eax, eax
mov qword [rsp + 0x38], r12
mov rdi, r13
mov r8, r13
mov edx, 0x42280c
repne scasw ax, word [rdi]
lea rax, [rsp + 0x40]
not rcx
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
lea r9d, [rcx + rcx]
mov rcx, qword [0x14008d468]
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x140046ce9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 8
mov ebp, eax
je 0x140046c2c
cmp eax, 0xea
je 0x140046c69
cmp eax, 0x5aa
jne 0x140046cad
mov rcx, qword [0x140080018]
cmp rcx, r15
je 0x140046ba4
test byte [rcx + 0x3c], 1
je 0x140046ba4
cmp byte [rcx + 0x39], 2
jb 0x140046ba4
mov rcx, qword [rcx + 0x30]
lea r8, [0x1400712a0]
mov dx, 0x33
call fcn.1400249f0
jmp 0x140046ba4
mov ebx, dword [rsp + 0x40]
mov rcx, qword [0x140080018]
cmp rcx, r15
je 0x140046ba4
test byte [rcx + 0x3c], 1
je 0x140046ba4
cmp byte [rcx + 0x39], 5
jb 0x140046ba4
mov rcx, qword [rcx + 0x30]
lea r8, [0x1400712a0]
mov r9, rbx
mov dx, 0x32
call fcn.140001260
jmp 0x140046ba4
mov rcx, qword [0x140080018]
cmp rcx, r15
je 0x140046cdc
test byte [rcx + 0x3c], 1
je 0x140046cdc
cmp byte [rcx + 0x39], 2
jb 0x140046cdc
mov rcx, qword [rcx + 0x30]
lea r8, [0x1400712a0]
mov r9d, eax
mov dx, 0x34
call fcn.14003b5c0
mov rcx, rsi
call fcn.14004ca6c
mov rsi, r12
jmp 0x140046d50
mov rcx, qword [0x140080018]
cmp rcx, r15
je 0x140046d50
test byte [rcx + 0x3c], 1
je 0x140046d50
cmp byte [rcx + 0x39], 5
jb 0x140046d50
mov rcx, qword [rcx + 0x30]
lea r8, [0x1400712a0]
mov r9, rsi
mov dx, 0x35
mov qword [rsp + 0x20], r13
call fcn.140045760
jmp 0x140046d50
mov rcx, qword [0x140080018]
cmp rcx, r15
je 0x140046d4b
test byte [rcx + 0x3c], 1
je 0x140046d4b
cmp byte [rcx + 0x39], 2
jb 0x140046d4b
mov rcx, qword [rcx + 0x30]
lea r8, [0x1400712a0]
mov dx, 0x31
call fcn.1400249f0
mov ebp, 8
mov r15, qword [rsp + 0xac0]
mov qword [r14], rsi
mov eax, ebp
mov rcx, qword [rsp + 0xa60]
xor rcx, rsp
call fcn.14004c890
add rsp, 0xa70
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret