Function at 0x1800669a0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x2e0
mov rax, qword [0x1800b2220]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov rbx, rcx
mov esi, 0x5c
mov dword [rsp + 0x40], esi
xor edi, edi
test rdx, rdx
je 0x1800669ea
lea rcx, [rsp + 0x68]
call qword [sym.imp.ntdll.dll_RtlInitUnicodeString]
nop dword [rax + rax]
jmp 0x1800669f3
mov dword [rsp + 0x68], edi
mov qword [rsp + 0x70], rdi
test rbx, rbx
je 0x180066a23
mov r8d, 0x104
lea rdx, [rsp + 0xc0]
mov rcx, rbx
call qword [sym.imp.KERNELBASE.dll_GetVolumeNameForVolumeMountPointW]
nop dword [rax + rax]
test eax, eax
je 0x180066a23
lea rcx, [rsp + 0xc0]
jmp 0x180066a2f
lea rcx, [rsp + 0x40]
test rbx, rbx
cmovne rcx, rbx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x58]
call qword [sym.imp.ntdll.dll_RtlDosPathNameToNtPathName_U]
nop dword [rax + rax]
test al, al
jne 0x180066a83
mov ecx, 3
call qword [sym.imp.ntdll.dll_RtlSetLastWin32Error]
nop dword [rax + rax]
xor eax, eax
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.180024680
lea r11, [rsp + 0x2e0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
mov rbx, qword [rsp + 0x60]
movzx eax, word [rsp + 0x58]
shr rax, 1
cmp word [rbx + rax*2 - 2], si
je 0x180066ac3
mov rcx, qword gs:[0x60]
mov r8, qword [rsp + 0x60]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov ecx, 0xc0000033
call sym.KERNEL32.dll_BaseSetLastNTError
jmp 0x180066a5b
mov esi, 0x30
mov dword [rsp + 0x78], esi
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x90], 0x40
lea rax, [rsp + 0x58]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], 3
lea r9, [rsp + 0xa8]
lea r8, [rsp + 0x78]
mov edx, 0x100002
lea rcx, [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtOpenFile]
nop dword [rax + rax]
mov dword [rsp + 0x30], eax
test eax, eax
jns 0x180066b5a
mov rcx, qword gs:[0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov ecx, dword [rsp + 0x30]
jmp 0x180066abc
mov rcx, qword [rsp + 0x38]
call fcn.1800591ac
test eax, eax
jne 0x180066ba1
mov rcx, qword gs:[0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
mov ecx, 0x90
jmp 0x180066a4f
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
mov eax, 0xfffe
add word [rsp + 0x58], ax
mov dword [rsp + 0x78], esi
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x90], 0x40
lea rax, [rsp + 0x58]
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
mov dword [rsp + 0x28], 0x20
mov dword [rsp + 0x20], 3
lea r9, [rsp + 0xa8]
lea r8, [rsp + 0x78]
mov edx, 0x100002
lea rcx, [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtOpenFile]
nop dword [rax + rax]
mov dword [rsp + 0x30], eax
mov rcx, qword gs:[0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov ecx, dword [rsp + 0x30]
test ecx, ecx
js 0x180066abc
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x34], 1
movzx eax, word [rsp + 0x68]
test ax, ax
lea ebx, [rax + 6]
jne 0x180066c6c
mov ebx, 8
mov dword [rsp + 0x44], ebx
call qword [sym.imp.KERNELBASE.dll_KernelBaseGetGlobalData]
nop dword [rax + rax]
mov ecx, dword [rax]
mov dword [rsp + 0x50], ecx
mov r8d, ebx
mov rcx, qword gs:[0x60]
mov edx, dword [rsp + 0x50]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x180066cfb
movzx r8d, word [rsp + 0x68]
lea rcx, [rax + 4]
mov rdx, qword [rsp + 0x70]
call sub.ntdll.dll_memcpy
movzx ecx, word [rsp + 0x68]
mov dword [rbx], ecx
mov dword [rsp + 0x20], 2
mov r9d, dword [rsp + 0x44]
mov r8, rbx
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtSetVolumeInformationFile]
nop dword [rax + rax]
test eax, eax
jns 0x180066d0a
mov ecx, eax
jmp 0x180066d00
mov ecx, 0xc0000017
mov dword [rsp + 0x34], edi
call sym.KERNEL32.dll_BaseSetLastNTError
nop
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ntdll.dll_NtClose]
nop dword [rax + rax]
test rbx, rbx
je 0x180066d40
mov rcx, qword gs:[0x60]
mov r8, qword [rsp + 0x48]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov eax, dword [rsp + 0x34]
jmp 0x180066a5d