Function at 0x180055430
Capabilities:
Get disk information

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x4e8
mov rax, qword [0x18021dd90]
xor rax, rsp
mov qword [rsp + 0x4d0], rax
cmp qword [rsp + 0x500], 0
je 0x18005547a
cmp qword [rsp + 0x508], 0
je 0x18005547a
cmp dword [rsp + 0x510], 0
jne 0x180055484
mov eax, 0xc000000d
jmp 0x180055dbc
mov dword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x40]
lea rcx, [0x1801bc664]
mov rdi, rax
mov rsi, rcx
mov ecx, 6
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x46]
mov rdi, rax
xor eax, eax
mov ecx, 6
rep stosb byte [rdi], al
movzx eax, word [rsp + 0x40]
cmp eax, 0x5a
jg 0x18005557e
xor eax, eax
mov word [rsp + 0x60], ax
lea rax, [rsp + 0x62]
mov rdi, rax
xor eax, eax
mov ecx, 0x40e
rep stosb byte [rdi], al
mov r8d, 0x208
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea rcx, [rsp + 0x60]
call fcn.1800f9644
mov qword [rsp + 0x470], rax
cmp qword [rsp + 0x470], 0
jbe 0x18005556c
mov r8, qword [rsp + 0x470]
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x18005556c
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x470]
lea rax, [rax + rcx*2]
mov qword [rsp + 0x50], rax
jmp 0x18005557e
movzx eax, word [rsp + 0x40]
inc ax
mov word [rsp + 0x40], ax
jmp 0x1800554da
cmp qword [rsp + 0x50], 0
je 0x1800555d4
mov rcx, qword [rsp + 0x50]
call fcn.1800f9644
add rax, 2
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x1800555c7
mov r9, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
lea rdx, [0x1801bc658]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x1800555cf
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
lea rcx, str.DeviceTVirtualDiskVolume
call fcn.1800f9644
mov qword [rsp + 0x480], rax
lea rcx, str.DeviceTSafeDiskVolume
call fcn.1800f9644
mov qword [rsp + 0x478], rax
mov r8, qword [rsp + 0x478]
lea rdx, str.DeviceTSafeDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055840
mov dword [rsp + 0x488], 0
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x478]
lea rax, [rax + rcx*2]
mov dx, 0x5c
mov rcx, rax
call fcn.1800f9624
mov qword [rsp + 0x490], rax
cmp qword [rsp + 0x490], 0
je 0x18005568c
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x478]
lea rax, [rax + rcx*2]
mov rcx, qword [rsp + 0x490]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov dword [rsp + 0x488], eax
jmp 0x1800556a6
mov rax, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x488], eax
mov eax, dword [rsp + 0x488]
mov rcx, qword [rsp + 0x478]
mov rdx, qword [rsp + 0x20]
sub rdx, rcx
mov rcx, rdx
cmp rax, rcx
jbe 0x1800556d2
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055db8
mov rax, qword [rsp + 0x20]
add rax, 0x10
sub rax, qword [rsp + 0x478]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055833
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800f8b90
mov r8d, 0x1e
lea rdx, str..TSD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fa600
mov eax, dword [rsp + 0x488]
shl rax, 1
mov rcx, qword [rsp + 0x500]
mov rdx, qword [rsp + 0x478]
lea rcx, [rcx + rdx*2]
mov rdx, qword [rsp + 0x508]
add rdx, 0x1e
mov qword [rsp + 0x4b0], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x4b0]
mov rcx, rax
call fcn.1800fa600
mov eax, dword [rsp + 0x488]
mov rcx, qword [rsp + 0x508]
lea rax, [rcx + rax*2 + 0x1e]
mov r8d, 2
lea rdx, [0x1801b5e40]
mov rcx, rax
call fcn.1800fa600
mov rax, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x488]
sub rax, rcx
test rax, rax
jbe 0x180055831
mov rax, qword [rsp + 0x478]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x488]
sub rax, rcx
shl rax, 1
mov rcx, qword [rsp + 0x500]
mov rdx, qword [rsp + 0x478]
lea rcx, [rcx + rdx*2]
mov edx, dword [rsp + 0x488]
lea rcx, [rcx + rdx*2]
mov edx, dword [rsp + 0x488]
mov rdi, qword [rsp + 0x508]
lea rdx, [rdi + rdx*2 + 0x20]
mov qword [rsp + 0x4b8], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x4b8]
mov rcx, rax
call fcn.1800fa600
jmp 0x18005583b
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8, qword [rsp + 0x480]
lea rdx, str.DeviceTVirtualDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055a84
mov dword [rsp + 0x498], 0
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x480]
lea rax, [rax + rcx*2]
mov dx, 0x5c
mov rcx, rax
call fcn.1800f9624
mov qword [rsp + 0x4a0], rax
cmp qword [rsp + 0x4a0], 0
je 0x1800558d0
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x480]
lea rax, [rax + rcx*2]
mov rcx, qword [rsp + 0x4a0]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov dword [rsp + 0x498], eax
jmp 0x1800558ea
mov rax, qword [rsp + 0x480]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x498], eax
mov eax, dword [rsp + 0x498]
mov rcx, qword [rsp + 0x480]
mov rdx, qword [rsp + 0x20]
sub rdx, rcx
mov rcx, rdx
cmp rax, rcx
jbe 0x180055916
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055db8
mov rax, qword [rsp + 0x20]
add rax, 0x10
sub rax, qword [rsp + 0x480]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055a77
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800f8b90
mov r8d, 0x1e
lea rdx, str..TVD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fa600
mov eax, dword [rsp + 0x498]
shl rax, 1
mov rcx, qword [rsp + 0x500]
mov rdx, qword [rsp + 0x480]
lea rcx, [rcx + rdx*2]
mov rdx, qword [rsp + 0x508]
add rdx, 0x1e
mov qword [rsp + 0x4c0], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x4c0]
mov rcx, rax
call fcn.1800fa600
mov eax, dword [rsp + 0x498]
mov rcx, qword [rsp + 0x508]
lea rax, [rcx + rax*2 + 0x1e]
mov r8d, 2
lea rdx, [0x1801b5e40]
mov rcx, rax
call fcn.1800fa600
mov rax, qword [rsp + 0x480]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x498]
sub rax, rcx
test rax, rax
jbe 0x180055a75
mov rax, qword [rsp + 0x480]
mov rcx, qword [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x498]
sub rax, rcx
shl rax, 1
mov rcx, qword [rsp + 0x500]
mov rdx, qword [rsp + 0x480]
lea rcx, [rcx + rdx*2]
mov edx, dword [rsp + 0x498]
lea rcx, [rcx + rdx*2]
mov edx, dword [rsp + 0x498]
mov rdi, qword [rsp + 0x508]
lea rdx, [rdi + rdx*2 + 0x20]
mov qword [rsp + 0x4c8], rdx
mov r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x4c8]
mov rcx, rax
call fcn.1800fa600
jmp 0x180055a7f
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, 8
lea rdx, [0x1801bc760]
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055af8
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 6
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055aeb
mov rax, qword [rsp + 0x500]
add rax, 0x10
mov r8, rax
lea rdx, [0x1801bc750]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055af3
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, 0x1a
lea rdx, str.__GlobalRootDosDevices_
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055bc4
mov dword [rsp + 0x4a8], 0x1a
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 0x1a
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x500]
add rax, 0x34
mov r8d, 7
lea rdx, [0x1801a74b8]
mov rcx, rax
call fcn.1800fb284
test eax, eax
jne 0x180055b7f
mov eax, dword [rsp + 0x4a8]
add eax, 7
mov dword [rsp + 0x4a8], eax
mov rax, qword [rsp + 0x28]
sub rax, 7
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055bb7
mov eax, dword [rsp + 0x4a8]
mov rcx, qword [rsp + 0x500]
lea rax, [rcx + rax*2]
mov r8, qword [rsp + 0x28]
mov rdx, rax
mov rcx, qword [rsp + 0x508]
call fcn.1800f8dd0
jmp 0x180055bbf
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, 0x19
lea rdx, str.DeviceLanmanRedirector_
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055c38
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 0x17
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055c2b
mov rax, qword [rsp + 0x500]
add rax, 0x32
mov r8, rax
lea rdx, [0x1801bc750]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055c33
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, recvfrom
lea rdx, str.DeviceMup_
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055cac
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 0xa
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055c9f
mov rax, qword [rsp + 0x500]
add rax, 0x18
mov r8, rax
lea rdx, [0x1801bc750]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055ca7
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str.DeviceHGFS_
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055d20
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 0xb
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055d13
mov rax, qword [rsp + 0x500]
add rax, 0x1a
mov r8, rax
lea rdx, [0x1801bc750]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055d1b
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.DeviceWinDfsRoot_
mov rcx, qword [rsp + 0x500]
call fcn.1800fb284
test eax, eax
jne 0x180055d91
mov rcx, qword [rsp + 0x500]
call fcn.1800f9644
sub rax, 0x12
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055d87
mov rax, qword [rsp + 0x500]
add rax, 0x28
mov r8, rax
lea rdx, [0x1801bc750]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055d8f
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055dae
mov r8d, dword [rsp + 0x510]
mov rdx, qword [rsp + 0x508]
mov rcx, qword [rsp + 0x500]
call fcn.180055200
xor eax, eax
test eax, eax
jne 0x1800554a7
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x4d0]
xor rcx, rsp
call fcn.1800f98f0
add rsp, 0x4e8
pop rdi
pop rsi
ret