Function at 0x180055560
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 0x1800555aa
cmp qword [rsp + 0x508], 0
je 0x1800555aa
cmp dword [rsp + 0x510], 0
jne 0x1800555b4
mov eax, 0xc000000d
jmp 0x180055eec
mov dword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x40]
lea rcx, [0x1801bc70c]
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 0x1800556ae
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.1800f9114
mov qword [rsp + 0x470], rax
cmp qword [rsp + 0x470], 0
jbe 0x18005569c
mov r8, qword [rsp + 0x470]
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x18005569c
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x470]
lea rax, [rax + rcx*2]
mov qword [rsp + 0x50], rax
jmp 0x1800556ae
movzx eax, word [rsp + 0x40]
inc ax
mov word [rsp + 0x40], ax
jmp 0x18005560a
cmp qword [rsp + 0x50], 0
je 0x180055704
mov rcx, qword [rsp + 0x50]
call fcn.1800f9114
add rax, 2
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x1800556f7
mov r9, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
lea rdx, [0x1801bc700]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x1800556ff
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
lea rcx, str.DeviceTVirtualDiskVolume
call fcn.1800f9114
mov qword [rsp + 0x480], rax
lea rcx, str.DeviceTSafeDiskVolume
call fcn.1800f9114
mov qword [rsp + 0x478], rax
mov r8, qword [rsp + 0x478]
lea rdx, str.DeviceTSafeDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055970
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.1800f90f4
mov qword [rsp + 0x490], rax
cmp qword [rsp + 0x490], 0
je 0x1800557bc
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 0x1800557d6
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 0x180055802
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ee8
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 0x180055963
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800f8660
mov r8d, 0x1e
lea rdx, str..TSD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fa0d0
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.1800fa0d0
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.1800fa0d0
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 0x180055961
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.1800fa0d0
jmp 0x18005596b
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8, qword [rsp + 0x480]
lea rdx, str.DeviceTVirtualDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055bb4
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.1800f90f4
mov qword [rsp + 0x4a0], rax
cmp qword [rsp + 0x4a0], 0
je 0x180055a00
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 0x180055a1a
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 0x180055a46
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ee8
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 0x180055ba7
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800f8660
mov r8d, 0x1e
lea rdx, str..TVD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fa0d0
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.1800fa0d0
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.1800fa0d0
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 0x180055ba5
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.1800fa0d0
jmp 0x180055baf
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, 8
lea rdx, [0x1801bc808]
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055c28
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
sub rax, 6
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055c1b
mov rax, qword [rsp + 0x500]
add rax, 0x10
mov r8, rax
lea rdx, [0x1801bc7f8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055c23
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, 0x1a
lea rdx, str.__GlobalRootDosDevices_
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055cf4
mov dword [rsp + 0x4a8], 0x1a
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
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.1800fad54
test eax, eax
jne 0x180055caf
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 0x180055ce7
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.1800f88a0
jmp 0x180055cef
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, 0x19
lea rdx, str.DeviceLanmanRedirector_
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055d68
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
sub rax, 0x17
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055d5b
mov rax, qword [rsp + 0x500]
add rax, 0x32
mov r8, rax
lea rdx, [0x1801bc7f8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055d63
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, recvfrom
lea rdx, str.DeviceMup_
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055ddc
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
sub rax, 0xa
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055dcf
mov rax, qword [rsp + 0x500]
add rax, 0x18
mov r8, rax
lea rdx, [0x1801bc7f8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055dd7
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str.DeviceHGFS_
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055e50
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
sub rax, 0xb
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055e43
mov rax, qword [rsp + 0x500]
add rax, 0x1a
mov r8, rax
lea rdx, [0x1801bc7f8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055e4b
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.DeviceWinDfsRoot_
mov rcx, qword [rsp + 0x500]
call fcn.1800fad54
test eax, eax
jne 0x180055ec1
mov rcx, qword [rsp + 0x500]
call fcn.1800f9114
sub rax, 0x12
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055eb7
mov rax, qword [rsp + 0x500]
add rax, 0x28
mov r8, rax
lea rdx, [0x1801bc7f8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055ebf
mov dword [rsp + 0x30], 0x80000005
jmp 0x180055ede
mov r8d, dword [rsp + 0x510]
mov rdx, qword [rsp + 0x508]
mov rcx, qword [rsp + 0x500]
call fcn.180055330
xor eax, eax
test eax, eax
jne 0x1800555d7
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x4d0]
xor rcx, rsp
call fcn.1800f93c0
add rsp, 0x4e8
pop rdi
pop rsi
ret