Function at 0x18008d7f0
Capabilities:
Get disk information
Get disk size

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xa0
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [rsp + 0xd8], rbx
movsxd r12, r8d
movzx ebp, dl
mov rsi, rcx
mov dword [rsp + 0x50], 0
lea rcx, [0x1801dc900]
mov rax, qword [0x1801dc900]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, [0x180152644]
or rbx, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x18008d879
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.180001960
test rax, rax
je 0x18008d895
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.180003400
jmp 0x18008d895
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x40]
call fcn.180003320
nop
movzx ecx, bpl
call qword [sym.imp.USER32.dll_IsCharAlphaA]
test eax, eax
jne 0x18008d907
xor eax, eax
mov rcx, rbx
lea rdi, [0x1801610c0]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x1801610c0]
lea rcx, [rsp + 0x40]
call fcn.180003320
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi - 0x18]
call fcn.180002880
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x50], 1
lock xadd dword [rdi - 8], ebx
dec ebx
test ebx, ebx
jg 0x18008d8ff
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + 8]
mov rax, rsi
jmp 0x18008def3
lea rcx, [0x1801dc900]
mov rax, qword [0x1801dc900]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
movzx ebp, bpl
mov r8d, ebp
lea rdx, [0x18015ccac]
lea rcx, [rsp + 0x58]
call fcn.1800041d0
mov ecx, pe_nt_image_headers64
call fcn.1800f3cdc
mov r13, rax
mov dword [rsp + 0xe8], 0
mov ecx, 0x14
call fcn.1800f3cdc
mov rdi, rax
mov dword [rsp + 0x38], 0x14
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xe8]
mov r8d, pe_nt_image_headers64
mov rdx, r13
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
lea rcx, [0x1801dc900]
mov rdx, qword [0x1801dc900]
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov ecx, 2
call fcn.1800f3cdc
mov r9d, 2
xor r8d, r8d
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x58]
call fcn.180003b80
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008da00
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r9d, 2
xor r8d, r8d
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x58]
call fcn.180003b80
nop
lea r9, [rsp + 0x98]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x78]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008da54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rsp + 0x68]
shr rcx, 0x14
mov rdx, qword [rsp + 0x78]
shr rdx, 0x14
cmp r12d, 5
ja case.default.0x18008da85
mov rax, r12
lea r12, sym.vrvhook64.dll_Ordinal_104
mov eax, dword [r12 + rax*4 + 0x8df0c]
add rax, r12
jmp rax
test r13, r13
je 0x18008daa8
mov r9, r13
mov r8d, ebp
lea rdx, [0x1801610a8]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
xor r9d, r9d
mov r8d, ebp
lea rdx, [0x1801610a8]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
mov r9d, dword [rsp + 0xe8]
test r9d, r9d
je 0x18008daea
mov r8d, ebp
lea rdx, [0x180161088]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
lea rdx, [0x180161070]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
test rdi, rdi
je 0x18008db21
mov r9, rdi
mov r8d, ebp
lea rdx, [0x180161050]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
lea rdx, [0x180161038]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
test rcx, rcx
je 0x18008db71
pxor xmm0, xmm0
cvtsi2ss xmm0, rcx
mulss xmm0, dword [0x180161030]
unpcklps xmm0, xmm0
cvtps2pd xmm3, xmm0
movq r9, xmm3
mov r8d, ebp
lea rdx, [0x180161010]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
lea rdx, [0x180160ff8]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
test rdx, rdx
je 0x18008dbc1
pxor xmm0, xmm0
cvtsi2ss xmm0, rdx
mulss xmm0, dword [0x180161030]
unpcklps xmm0, xmm0
cvtps2pd xmm3, xmm0
movq r9, xmm3
mov r8d, ebp
lea rdx, [0x180160fd8]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
lea rdx, [0x180160fc0]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 6
ja case.default.0x18008dbf8
mov eax, eax
mov ecx, dword [r12 + rax*4 + 0x8df24]
add rcx, r12
jmp rcx
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160fb0]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160fb0]
lea rcx, [rsp + 0x48]
call fcn.180003320
jmp 0x18008dd92
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f90]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f90]
lea rcx, [rsp + 0x40]
call fcn.180003320
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi - 0x18]
call fcn.180002880
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x50], 1
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008dc88
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008dca8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lock xadd dword [rdi - 8], ebx
dec ebx
test ebx, ebx
jg 0x18008dcc1
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + 8]
mov rax, rsi
jmp 0x18008def3
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f80]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f80]
lea rcx, [rsp + 0x48]
call fcn.180003320
jmp 0x18008dd92
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f74]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f74]
lea rcx, [rsp + 0x48]
call fcn.180003320
jmp 0x18008dd92
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f68]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f68]
lea rcx, [rsp + 0x48]
call fcn.180003320
jmp 0x18008dd92
xor eax, eax
mov rcx, rbx
lea rdi, [0x180150b9c]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180150b9c]
lea rcx, [rsp + 0x48]
call fcn.180003320
jmp 0x18008dd92
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f60]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f60]
lea rcx, [rsp + 0x48]
call fcn.180003320
mov r9, qword [rsp + 0x48]
mov r8d, ebp
lea rdx, [0x180160f48]
lea rcx, [rsp + 0x40]
call fcn.1800041d0
jmp 0x18008de7b
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f38]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f38]
lea rcx, [rsp + 0x40]
call fcn.180003320
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi - 0x18]
call fcn.180002880
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x50], 1
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008de13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008de33
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lock xadd dword [rdi - 8], ebx
dec ebx
test ebx, ebx
jg 0x18008de4c
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + 8]
mov rax, rsi
jmp 0x18008def3
xor eax, eax
mov rcx, rbx
lea rdi, [0x180160f18]
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x180160f18]
lea rcx, [rsp + 0x40]
call fcn.180003320
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008de9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18008deba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rsp + 0x40]
lea rcx, [rdi - 0x18]
call fcn.180002880
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x50], 1
lock xadd dword [rdi - 8], ebx
dec ebx
test ebx, ebx
jg 0x18008def0
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + 8]
mov rax, rsi
mov rbx, qword [rsp + 0xd8]
add rsp, 0xa0
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret