Function at 0x14004fbb0
Capabilities:
Get disk size

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2a8]
sub rsp, 0x380
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1401bee90]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov r15, rcx
mov qword [rsp + 0x58], rcx
xor r13d, r13d
mov dword [rsp + 0x44], r13d
call fcn.14004c930
or r14, 0xffffffffffffffff
test al, al
jne 0x14004fc4e
mov ecx, dword [0x1401c6d80]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub ecx, edx
add ecx, 0x2f4
movsxd rcx, ecx
mov eax, 4
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.1400cbef8
mov rcx, rax
call fcn.1400cd9ec
lea rcx, [rsp + 0x38]
call fcn.14004f6e0
nop
mov rcx, qword [rsp + 0x38]
cmp dword [rcx - 0x10], 0
jne 0x14004fce9
lea rcx, [0x1401be9a8]
mov rax, qword [0x1401be9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r15], rax
lea rdx, [0x14014ffd0]
test rdx, 0xffffffffffff0000
jne 0x14004fcaf
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x14004fcbe
mov r8d, ebx
mov rdx, rax
mov rcx, r15
call fcn.1400026e0
jmp 0x14004fcbe
mov r8d, 3
mov rcx, r15
call fcn.1400023f0
nop
mov dword [rsp + 0x44], 1
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004ffe0
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
jmp 0x14004ffe0
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x50], r13
mov rax, qword [0x1401c7f68]
test rax, rax
jne 0x14004fde5
lea rcx, str.Version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r12, rax
mov r9d, dword [0x1401c6d80]
mov r8d, r9d
imul r8d, r9d
mov eax, 0x88888889
imul r8d
add edx, r8d
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 0xf
sub r8d, edx
cmp r8d, 2
jne 0x14004fdaf
mov edi, r13d
lea rsi, [rsp + 0x70]
nop
mov r10d, r13d
lea ebx, [r10 + 1]
lea ecx, [rdi + 1]
mov eax, r9d
cdq
idiv ecx
mov r8d, edx
mov ecx, r9d
sub ecx, edi
imul r8d, ecx
mov eax, r9d
cdq
idiv ebx
add r8d, eax
sub r8d, r10d
mov dword [rsi], r8d
mov edx, r8d
lea rcx, [0x14014e1bc]
call fcn.1400cd1bc
mov r10d, ebx
add rsi, 4
cmp ebx, 9
jge 0x14004fd9f
mov r9d, dword [0x1401c6d80]
jmp 0x14004fd53
inc edi
cmp edi, 0x15
jge 0x14004fdaf
mov r9d, dword [0x1401c6d80]
jmp 0x14004fd50
test r12, r12
je 0x14004fdcd
lea rdx, str.GetFileVersionInfoSizeW
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1401c7f68], rax
jmp 0x14004fdd4
mov rax, qword [0x1401c7f68]
test rax, rax
je 0x14004fde0
mov rcx, qword [rsp + 0x38]
jmp 0x14004fde5
mov esi, r13d
jmp 0x14004fdee
lea rdx, [rsp + 0x48]
call rax
mov esi, eax
lea rcx, [0x1401be9a8]
mov rdx, qword [0x1401be9a8]
call qword [rdx + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea r8, [0x14014fff8]
test r8, 0xffffffffffff0000
jne 0x14004fe43
movzx edi, r8w
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x14004feb8
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400026e0
mov rbx, qword [rsp + 0x30]
jmp 0x14004feb8
mov r12d, dword [rbx - 0x10]
mov rdi, r8
sub rdi, rbx
sar rdi, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 3
or eax, ecx
jge 0x14004fe7d
mov edx, 3
lea rcx, [rsp + 0x30]
call fcn.1400024e0
mov rbx, qword [rsp + 0x30]
lea r8, [0x14014fff8]
movsxd rdx, dword [rbx - 0xc]
mov r9d, 6
mov rcx, rbx
add rdx, rdx
cmp rdi, r12
ja 0x14004fe9d
lea r8, [rbx + rdi*2]
call fcn.1400cd0d4
jmp 0x14004fea2
call fcn.1400cd294
cmp dword [rbx - 0xc], 3
jl 0x14004ffd5
mov dword [rbx - 0x10], 3
mov word [rbx + 6], r13w
mov eax, dword [0x1401c6d80]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 0x80000007
jge 0x14004fed3
dec ecx
or ecx, 0xfffffff8
inc ecx
cmp ecx, 7
jne 0x14004feed
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test esi, esi
je 0x14004ff8c
mov ecx, esi
call fcn.1400cbef8
mov rdi, rax
call fcn.14002b620
mov rcx, rax
mov qword [rsp + 0x20], rdi
mov r9d, esi
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x38]
call fcn.140041c10
test eax, eax
je 0x14004ff84
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x50]
lea rdx, [0x14014e1dc]
mov rcx, rdi
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14004ff84
cmp dword [rsp + 0x40], 0
je 0x14004ff84
mov rax, qword [rsp + 0x50]
cmp dword [rax], 0xfeef04bd
jne 0x14004ff84
movzx r8d, word [rax + 0xa]
movzx r9d, word [rax + 8]
movzx ecx, word [rax + 0xe]
movzx eax, word [rax + 0xc]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rdx, [0x14014ffe0]
lea rcx, [rsp + 0x30]
call fcn.140011890
mov rbx, qword [rsp + 0x30]
mov rcx, rdi
call fcn.1400cd9ec
lea rcx, [rbx - 0x18]
call fcn.140002540
add rax, 0x18
mov qword [r15], rax
mov dword [rsp + 0x44], 1
lock add dword [rbx - 8], 0xffffffff
jg 0x14004ffba
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004ffe0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14004ffe0
mov ecx, 0x80070057
call fcn.140001920
nop
mov rax, r15
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.1400cc8b0
lea r11, [rsp + 0x380]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret