Function at 0x180055be0
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 [0x180222e50]
xor rax, rsp
mov qword [rsp + 0x4d0], rax
cmp qword [rsp + 0x500], 0
je 0x180055c2a
cmp qword [rsp + 0x508], 0
je 0x180055c2a
cmp dword [rsp + 0x510], 0
jne 0x180055c34
mov eax, 0xc000000d
jmp 0x18005656c
mov dword [rsp + 0x30], 0
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0x40]
lea rcx, [0x1801bfaf4]
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 0x180055d2e
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.1800fbc94
mov qword [rsp + 0x470], rax
cmp qword [rsp + 0x470], 0
jbe 0x180055d1c
mov r8, qword [rsp + 0x470]
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x180055d1c
mov rax, qword [rsp + 0x500]
mov rcx, qword [rsp + 0x470]
lea rax, [rax + rcx*2]
mov qword [rsp + 0x50], rax
jmp 0x180055d2e
movzx eax, word [rsp + 0x40]
inc ax
mov word [rsp + 0x40], ax
jmp 0x180055c8a
cmp qword [rsp + 0x50], 0
je 0x180055d84
mov rcx, qword [rsp + 0x50]
call fcn.1800fbc94
add rax, 2
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180055d77
mov r9, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
lea rdx, [0x1801bfae8]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180055d7f
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
lea rcx, str.DeviceTVirtualDiskVolume
call fcn.1800fbc94
mov qword [rsp + 0x480], rax
lea rcx, str.DeviceTSafeDiskVolume
call fcn.1800fbc94
mov qword [rsp + 0x478], rax
mov r8, qword [rsp + 0x478]
lea rdx, str.DeviceTSafeDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x180055ff0
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.1800fbc74
mov qword [rsp + 0x490], rax
cmp qword [rsp + 0x490], 0
je 0x180055e3c
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 0x180055e56
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 0x180055e82
mov dword [rsp + 0x30], 0x80000005
jmp 0x180056568
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 0x180055fe3
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800fb1e0
mov r8d, 0x1e
lea rdx, str..TSD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fcc50
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.1800fcc50
mov eax, dword [rsp + 0x488]
mov rcx, qword [rsp + 0x508]
lea rax, [rcx + rax*2 + 0x1e]
mov r8d, 2
lea rdx, [0x1801b8e70]
mov rcx, rax
call fcn.1800fcc50
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 0x180055fe1
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.1800fcc50
jmp 0x180055feb
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8, qword [rsp + 0x480]
lea rdx, str.DeviceTVirtualDiskVolume
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x180056234
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.1800fbc74
mov qword [rsp + 0x4a0], rax
cmp qword [rsp + 0x4a0], 0
je 0x180056080
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 0x18005609a
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 0x1800560c6
mov dword [rsp + 0x30], 0x80000005
jmp 0x180056568
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 0x180056227
mov eax, dword [rsp + 0x510]
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x508]
call fcn.1800fb1e0
mov r8d, 0x1e
lea rdx, str..TVD_VOLUME_
mov rcx, qword [rsp + 0x508]
call fcn.1800fcc50
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.1800fcc50
mov eax, dword [rsp + 0x498]
mov rcx, qword [rsp + 0x508]
lea rax, [rcx + rax*2 + 0x1e]
mov r8d, 2
lea rdx, [0x1801b8e70]
mov rcx, rax
call fcn.1800fcc50
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 0x180056225
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.1800fcc50
jmp 0x18005622f
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, 8
lea rdx, [0x1801bfbf0]
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x1800562a8
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 6
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x18005629b
mov rax, qword [rsp + 0x500]
add rax, 0x10
mov r8, rax
lea rdx, [0x1801bfbe0]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x1800562a3
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, 0x1a
lea rdx, str.__GlobalRootDosDevices_
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x180056374
mov dword [rsp + 0x4a8], 0x1a
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 0x1a
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x500]
add rax, 0x34
mov r8d, 7
lea rdx, [0x1801aa4c8]
mov rcx, rax
call fcn.1800fd9e8
test eax, eax
jne 0x18005632f
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 0x180056367
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.1800fb420
jmp 0x18005636f
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, 0x19
lea rdx, str.DeviceLanmanRedirector_
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x1800563e8
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 0x17
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x1800563db
mov rax, qword [rsp + 0x500]
add rax, 0x32
mov r8, rax
lea rdx, [0x1801bfbe0]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x1800563e3
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, recvfrom
lea rdx, str.DeviceMup_
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x18005645c
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 0xa
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x18005644f
mov rax, qword [rsp + 0x500]
add rax, 0x18
mov r8, rax
lea rdx, [0x1801bfbe0]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x180056457
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str.DeviceHGFS_
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x1800564d0
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 0xb
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x1800564c3
mov rax, qword [rsp + 0x500]
add rax, 0x1a
mov r8, rax
lea rdx, [0x1801bfbe0]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x1800564cb
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, reloc.WS2_32.dll_sendto
lea rdx, str.DeviceWinDfsRoot_
mov rcx, qword [rsp + 0x500]
call fcn.1800fd9e8
test eax, eax
jne 0x180056541
mov rcx, qword [rsp + 0x500]
call fcn.1800fbc94
sub rax, 0x12
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x510]
cmp qword [rsp + 0x28], rax
jae 0x180056537
mov rax, qword [rsp + 0x500]
add rax, 0x28
mov r8, rax
lea rdx, [0x1801bfbe0]
mov rcx, qword [rsp + 0x508]
call fcn.180003a60
jmp 0x18005653f
mov dword [rsp + 0x30], 0x80000005
jmp 0x18005655e
mov r8d, dword [rsp + 0x510]
mov rdx, qword [rsp + 0x508]
mov rcx, qword [rsp + 0x500]
call fcn.1800559b0
xor eax, eax
test eax, eax
jne 0x180055c57
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x4d0]
xor rcx, rsp
call fcn.1800fbf40
add rsp, 0x4e8
pop rdi
pop rsi
ret