Function at 0x14005f50c
Capabilities:
Get disk information via ioctl

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3b8
mov r12, rcx
lea rcx, [0x1400f2c58]
mov edi, edx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor esi, esi
mov eax, edi
and eax, 0x200000
mov ebp, edi
mov r15d, edi
mov dword [rsp + 0x408], eax
mov rax, qword [r12]
lea rcx, [rsp + 0x80]
mov word [rax], si
and ebp, 0x10000
mov edx, 0x100000
and r15d, 0x20000
and edi, 0xc000ffff
mov r14d, esi
mov dword [rsp + 0x410], esi
mov dword [rsp + 0x400], ebp
mov r13d, esi
call fcn.14004bc80
lea rcx, [rsp + 0x418]
mov edx, 0x800
call fcn.14004bedc
cmp edi, esi
mov rbx, qword [rsp + 0x418]
lea rax, [rbx + 0x800]
lea ecx, [rsi + 0x20]
mov word [rbx + 2], si
mov word [rbx], cx
mov word [rax], cx
mov word [rax + 2], si
mov qword [rsp + 0x78], rax
jl 0x14005f5c6
mov esi, edi
jmp 0x14005f5d2
cmp esi, 0x3e80
jge 0x14005f99c
lea rdx, str..PhysicalDrive_d
lea rcx, [rsp + 0x160]
mov r8d, esi
call qword [sym.imp.USER32.dll_wsprintfW]
xor ecx, ecx
cmp ebp, ecx
je 0x14005f612
cmp edi, ecx
jl 0x14005f612
lea r8d, [rcx + 0x13]
lea rdx, [rbx + 2]
lea r9, [0x1400d7780]
lea rcx, [rsp + 0x160]
call fcn.14005158c
xor ecx, ecx
mov qword [rsp + 0x70], rcx
cmp r15d, ecx
je 0x14005f625
cmp edi, ecx
mov ebp, 1
jge 0x14005f627
mov ebp, ecx
mov qword [rsp + 0x38], rcx
mov eax, ebp
mov dword [rsp + 0x30], 0x20000000
neg eax
mov eax, 3
lea rdx, [rsp + 0x160]
sbb r8d, r8d
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
and r8d, 0x40000000
lea rcx, [rsp + 0x70]
mov r9d, eax
add r8d, 0x80000000
call fcn.1400034e0
mov rbx, qword [rsp + 0x70]
test ebp, ebp
je 0x14005f688
mov r8, qword [rsp + 0x78]
mov edx, esi
mov rcx, rbx
add r8, 2
call fcn.140049200
xor ebp, ebp
cmp edi, ebp
jge 0x14005f6f5
cmp rbx, rbp
je 0x14005f6d2
lea rdx, [0x1400d8a10]
lea rcx, [rsp + 0x160]
mov r8d, esi
mov r13d, ebp
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x160]
mov rcx, r12
call fcn.14004bfa8
inc r14d
cmp rbx, 0xffffffffffffffff
je 0x14005f6df
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14005f6df
inc r13d
cmp r13d, 0x20
jge 0x14005f99c
mov rbx, qword [rsp + 0x418]
mov ebp, dword [rsp + 0x400]
inc esi
jmp 0x14005f5c6
cmp rbx, rbp
je 0x14005f99c
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdi, qword [rsp + 0x80]
xor edx, edx
mov rcx, rdi
mov r8d, 0xc0
call fcn.1400b93b0
mov qword [rsp + 0x38], rbp
lea rax, [rsp + 0x410]
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70050
mov rcx, rbx
mov dword [rsp + 0x28], 0x100000
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebp, dword [rdi]
xor r13d, r13d
lea rcx, [0x1400deb00]
lea rax, [0x1400deaf8]
cmp ebp, r13d
lea r14, [0x1400deaf0]
mov r8d, 0x9e
cmovne rax, rcx
lea rcx, [rsp + 0xb0]
cmp ebp, 1
cmovne r14, rax
mov eax, dword [0x1400deae4]
xor edx, edx
mov dword [rcx], eax
movzx eax, word [0x1400deae8]
mov word [rcx + 4], ax
lea rcx, [rsp + 0xb6]
call fcn.1400b93b0
cmp ebp, r13d
jne 0x14005f7c9
mov r8d, dword [rdi + 8]
lea rdx, str._08lX
lea rcx, [rsp + 0xb0]
call qword [sym.imp.USER32.dll_wsprintfW]
jmp 0x14005f7e2
cmp ebp, 1
jne 0x14005f7e2
lea rdx, [rdi + 8]
lea rcx, [rsp + 0xb0]
xor r8d, r8d
call fcn.14004903c
xor edx, edx
lea rcx, [rsp + 0x8c]
mov dword [rsp + 0x88], r13d
lea r8d, [rdx + 0x24]
call fcn.1400b93b0
lea rdx, [rsp + 0x88]
mov rcx, rbx
call fcn.140048f80
mov rdx, rbx
xor ecx, ecx
mov rbp, rax
call fcn.14004e170
mov edx, 0xc8
mov rcx, r12
mov r13d, eax
call fcn.14004bf70
xor edx, edx
mov r9d, 0x800
lea r8d, [rdx + 1]
mov rcx, rbx
call fcn.140051d94
mov cl, 0x3f
cmp eax, 0xc
jne 0x14005f84a
mov dil, 0x46
jmp 0x14005f858
movzx edi, cl
cmp eax, 0xb
mov ecx, 0x52
cmove edi, ecx
xor eax, eax
mov word [rsp + 0x230], ax
cmp dword [rsp + 0x408], eax
je 0x14005f8b7
or qword [rsp + 0x70], 0xffffffffffffffff
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x408]
mov rcx, rbx
mov dword [rsp + 0x408], eax
call fcn.1400522a4
mov r9d, dword [rsp + 0x408]
lea rdx, str.__I64d__u__I64d
mov r8, rax
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x230]
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x330]
mov rdx, rbp
call fcn.1400a9350
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0x2b0]
call fcn.1400a9350
lea rcx, [rsp + 0x230]
movsx eax, dil
mov qword [rsp + 0x68], rcx
mov rcx, qword [r12]
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x50], r13d
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x90]
lea r9, [rsp + 0x330]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x9c]
lea rdx, str._2d__14s__14s__6lu__4lu__4lu__4lu__s__2d__s__c_s
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x98]
mov r8d, esi
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_wsprintfW]
xor edi, edi
mov r14d, eax
cmp dword [rsp + 0x400], edi
je 0x14005f97b
mov rdx, qword [rsp + 0x418]
mov rcx, r12
call fcn.14004bfa8
cmp r15d, edi
je 0x14005f98d
mov rdx, qword [rsp + 0x78]
mov rcx, r12
call fcn.14004bfa8
cmp rbx, 0xffffffffffffffff
je 0x14005f99c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [r12]
call fcn.140012d94
lea rcx, [rsp + 0x418]
call fcn.140044f24
lea rcx, [rsp + 0x80]
call fcn.140044f24
lea rcx, [0x1400f2c58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, r14d
add rsp, 0x3b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret