Function at 0x50ce60
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
sub rsp, 0xa8
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rbp
mov qword [r11 - 8], rsi
mov qword [r11 - 0x10], rdi
mov qword [r11 - 0x18], r12
mov qword [r11 - 0x20], r13
mov qword [r11 - 0x28], r14
mov rax, qword [0x006443a8]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rbp, rdx
mov rdi, rcx
mov qword [r11 - 0x60], rcx
xor r14d, r14d
mov ebx, r14d
mov dword [rsp + 0x30], r14d
lea rax, [0x005dce10]
mov qword [rcx], rax
mov r8d, 0x30003c
lea rdx, [rcx + 8]
mov rcx, rbp
call fcn.00485b10
nop
lea rcx, [rdi + 0x30]
lea rdx, [rdi + 8]
call fcn.00522c30
nop
mov rsi, 0xffffffffffffffff
mov qword [rdi + 0x278], rsi
mov byte [rdi + 0x280], r14b
mov byte [rdi + 0x28e], r14b
mov qword [rdi + 0x290], r14
cmp qword [rdi + 0x20], r14
je 0x50d0e6
xor r12b, r12b
lea edx, [rsi + 5]
mov rcx, rbp
call fcn.00485e90
test al, al
je 0x50cfad
lea r8d, [r14 + 4]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.00485b10
nop
lea ebx, [rsi + 2]
mov r9, qword [rax + 0x18]
cmp r9, r9
cmovb r9, r9
cmp qword [rax + 0x20], 8
jb 0x50cf4e
mov rcx, qword [rax + 8]
jmp 0x50cf52
lea rcx, [rax + 8]
mov r8, rbx
cmp r9, rbx
cmovb r8, r9
lea rdx, [0x005af0e8]
test r8, r8
je 0x50cf8b
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x50cf7f
add rcx, 2
add rdx, 2
sub r8, rbx
jne 0x50cf68
jmp 0x50cf8b
mov r8d, ebx
cmp word [rcx], ax
cmovb r8d, esi
jmp 0x50cf8e
mov r8d, r14d
movsxd rax, r8d
test r8d, r8d
jne 0x50cfa4
cmp r9, rbx
jb 0x50cfa8
mov eax, r14d
cmp r9, rbx
setne al
test eax, eax
je 0x50cfad
movzx esi, bl
jmp 0x50cfb0
xor sil, sil
test bl, 1
je 0x50cfca
and ebx, 0xfffffffe
cmp qword [rsp + 0x70], 8
jb 0x50cfca
mov rcx, qword [rsp + 0x58]
call fcn.00568830
test sil, sil
je 0x50cff5
mov r12b, 1
mov r8d, 0x2001f0
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.00485b10
or ebx, 2
cmp qword [rax + 0x18], 0
jne 0x50cff5
movzx esi, r12b
jmp 0x50cff8
xor sil, sil
test bl, 2
je 0x50d00f
cmp qword [rsp + 0x70], 8
jb 0x50d00f
mov rcx, qword [rsp + 0x58]
call fcn.00568830
test sil, sil
je 0x50d01b
mov byte [rdi + 0x28e], 1
test r12b, r12b
je 0x50d0ed
mov ecx, 0x98
call fcn.00569590
mov qword [rsp + 0x38], rax
test rax, rax
je 0x50d045
mov rdx, rbp
mov rcx, rax
call fcn.0050e690
jmp 0x50d048
mov rax, r14
mov qword [rdi + 0x290], rax
test rax, rax
jne 0x50d083
call fcn.00473e00
mov r10, qword [rax]
lea rcx, str.mNetAccess
mov qword [rsp + 0x20], rcx
lea r9, str.FileAccess::OSAccessorIter::OSAccessorIter
mov r8d, reloc.OLEAUT32.dll_QueryPathOfRegTypeLib
lea rdx, str..OSAccessorIter.cpp
mov rcx, rax
call qword [r10 + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x30]
mov rcx, qword [rdi + 0x290]
call fcn.005117a0
nop
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x50d0c7
mov eax, dword [rbx + 4]
test eax, eax
je 0x50d0c7
test eax, 0xffff0000
jg 0x50d0c7
add dword [rbx], 1
mov qword [rsp + 0x38], rbx
lea rdx, [0x0063ada0]
lea rcx, [rsp + 0x38]
call fcn.00568cd0
nop
test rbx, rbx
je 0x50d0ed
add dword [rbx], 0xffffffff
cmp dword [rbx], 0
jne 0x50d0ed
mov rcx, rbx
call fcn.0045f110
mov rcx, rbx
call fcn.00568830
jmp 0x50d0ed
mov byte [rdi + 0x280], 1
cmp byte [rdi + 0x28e], 0
je 0x50d135
mov rcx, qword [rdi + 0x290]
call fcn.0050dd20
test al, al
je 0x50d412
lea rbx, [rdi + 0x48]
mov rdx, rbx
mov rcx, qword [rdi + 0x290]
call fcn.0050db10
test al, al
je 0x50d412
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x278], r14
jmp 0x50d412
cmp byte [rdi + 0x280], 0
je 0x50d2f2
mov dword [rdi + 0x284], r14d
mov dword [rdi + 0x288], r14d
mov bl, 0x41
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r14
mov word [rsp + 0x58], 0
mov r9d, 6
lea r8, [0x005dcea0]
lea edx, [r9 + 8]
lea rcx, [rsp + 0x58]
call fcn.00568a50
mov qword [rsp + 0x68], 3
lea rax, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rax, qword [rsp + 0x58]
mov word [rax + 6], 0
lea rax, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rax, qword [rsp + 0x58]
movsx esi, bl
mov word [rax], si
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
je 0x50d1fd
mov al, bl
lea ecx, [rax - 0x41]
mov edx, 1
shl edx, cl
or dword [rdi + 0x284], edx
cmp dword [rdi + 0x288], 0
jne 0x50d1fd
mov dword [rdi + 0x288], edx
mov word [rdi + 0x28c], si
cmp qword [rsp + 0x70], 8
jb 0x50d20f
mov rcx, qword [rsp + 0x58]
call fcn.00568830
add bl, 1
cmp bl, 0x5a
jle 0x50d152
cmp dword [rdi + 0x288], 0
je 0x50d412
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], r14
mov word [rsp + 0x58], 0
mov r9d, 6
lea r8, [0x005dcea0]
lea edx, [r9 + 8]
lea rcx, [rsp + 0x58]
call fcn.00568a50
mov qword [rsp + 0x68], 3
lea rax, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rax, qword [rsp + 0x58]
mov word [rax + 6], 0
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
movzx eax, word [rdi + 0x28c]
mov word [rcx], ax
lea rbx, [rdi + 0x48]
mov dword [rbx], reloc.OLEAUT32.dll_SafeArrayGetDim
lea r8, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae r8, qword [rsp + 0x58]
lea rcx, [rdi + 0x70]
mov edx, 0x104
call fcn.0056ad50
mov qword [rdi + 0x68], r14
mov qword [rdi + 0x58], r14
mov qword [rdi + 0x50], r14
mov qword [rdi + 0x60], r14
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x278], r14
cmp qword [rsp + 0x70], 8
jb 0x50d412
mov rcx, qword [rsp + 0x58]
call fcn.00568830
jmp 0x50d412
mov r8w, 0x2a
lea rdx, [rdi + 8]
lea rcx, [rsp + 0x50]
call fcn.0050ccd0
lea r11, [rsp + 0x58]
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x70]
cmp r8, 8
cmovae r11, rdx
mov rcx, qword [rsp + 0x68]
lea rsi, [r11 + rcx*2]
test rsi, rsi
je 0x50d352
lea rax, [rsp + 0x58]
cmp r8, 8
cmovae rax, rdx
cmp rax, rsi
ja 0x50d352
lea rax, [rsp + 0x58]
cmp r8, 8
cmovae rax, rdx
lea rax, [rax + rcx*2]
cmp rsi, rax
jbe 0x50d366
call fcn.0056a700
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x58]
cmp r8, 8
jb 0x50d376
mov rbx, rdx
test rdx, rdx
je 0x50d3a3
jmp 0x50d37b
lea rbx, [rsp + 0x58]
lea rax, [rsp + 0x58]
cmp r8, 8
cmovae rax, rdx
cmp rax, rbx
ja 0x50d3a3
lea rax, [rsp + 0x58]
cmp r8, 8
cmovae rax, rdx
lea rax, [rax + rcx*2]
cmp rbx, rax
jbe 0x50d3b2
call fcn.0056a700
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x58]
cmp rbx, rsi
je 0x50d3d5
cmp word [rbx], 0x2f
jne 0x50d3c2
mov word [rbx], 0x5c
add rbx, 2
cmp rbx, rsi
jne 0x50d3b7
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x58]
cmp r8, 8
cmovae rcx, rdx
lea rbx, [rdi + 0x48]
mov rdx, rbx
call fcn.005729e0
mov qword [rdi + 0x278], rax
cmp rax, 0xffffffffffffffff
je 0x50d3ff
mov qword [rdi + 0x40], rbx
cmp qword [rsp + 0x70], 8
jb 0x50d412
mov rcx, qword [rsp + 0x58]
call fcn.00568830
nop
mov rax, rdi
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.00568fb0
mov rbx, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
add rsp, 0xa8
ret