Function at 0x14003dcdc
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 8], 0xfffffffffffffffe
mov rbx, rcx
and dword [rbp - 0x20], 0
lea rcx, [rbp + 0x48]
call fcn.14003d988
nop
mov rax, qword [rbp + 0x48]
cmp dword [rax - 0x10], 0
jne 0x14003dd75
mov ecx, dword [0x14019fd80]
lea r8d, [rcx + 2]
lea eax, [rcx + 1]
imul r8d, eax
imul r8d, ecx
mov eax, 0x2e8ba2e9
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub r8d, edx
mov eax, dword [0x1401a0f7c]
mov ecx, 0xa402e63d
cmp r8d, 0x11
cmove eax, ecx
mov dword [0x1401a0f7c], eax
lea rdx, [0x140132fe0]
mov rcx, rbx
call fcn.140001cb0
mov dword [rbp - 0x20], 1
or rsi, 0xffffffffffffffff
jmp 0x14003e001
and dword [rbp + 0x38], 0
and dword [rbp + 0x40], 0
and qword [rbp - 0x10], 0
mov r8d, dword [0x14019fd80]
lea ecx, [r8 + 2]
lea eax, [r8 + 1]
imul ecx, eax
imul ecx, r8d
mov edi, 0xb21642c9
mov eax, edi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
or rsi, 0xffffffffffffffff
cmp ecx, 0xb
jne 0x14003ddfb
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r8d, edx
add r8d, 0x7b
movsxd rcx, r8d
lea eax, [rsi + 5]
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400b8688
mov rcx, rax
call fcn.1400ba0bc
mov r8d, dword [0x14019fd80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 9
jne 0x14003de27
dec dword [0x1401a0f84]
mov r9, qword [0x1401a16c8]
test r9, r9
jne 0x14003decf
lea rcx, str.Version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x14003de65
lea rdx, str.GetFileVersionInfoSizeW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9, rax
mov qword [0x1401a16c8], rax
jmp 0x14003de6c
mov r9, qword [0x1401a16c8]
mov ecx, dword [0x14019fd80]
lea r8d, [rcx + 1]
imul r8d, ecx
mov eax, edi
imul r8d
add edx, r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub r8d, edx
cmp r8d, 0x10
jne 0x14003dec6
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, eax
mov eax, 0xcccccccd
mul r8d
shr edx, 6
lea ecx, [rdx + rdx*4]
shl ecx, 4
sub r8d, ecx
lea eax, [r8 + 1]
mov dword [0x14019fd80], eax
mov r9, qword [0x1401a16c8]
test r9, r9
jne 0x14003decf
xor edi, edi
jmp 0x14003dedc
lea rdx, [rbp + 0x38]
mov rcx, qword [rbp + 0x48]
call r9
mov edi, eax
lea rdx, [0x140132fe0]
lea rcx, [rbp - 0x18]
call fcn.140001cb0
nop
test edi, edi
je 0x14003dfcf
mov ecx, edi
call fcn.1400b8688
mov r14, rax
call fcn.140021eac
mov rcx, rax
mov qword [rsp + 0x20], r14
mov r9d, edi
mov r8d, dword [rbp + 0x38]
mov rdx, qword [rbp + 0x48]
call fcn.1400334cc
test eax, eax
je 0x14003dfc7
lea r9, [rbp + 0x40]
lea r8, [rbp - 0x10]
lea rdx, [0x140130a20]
mov rcx, r14
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14003dfc7
mov ecx, dword [0x14019fd80]
mov r8d, ecx
imul r8d, ecx
imul r8d, ecx
mov eax, 0x2aaaaaab
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 2
sub r8d, eax
cmp r8d, 0xa
jne 0x14003df8b
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
cmp dword [rbp + 0x40], 0
je 0x14003dfc7
mov rax, qword [rbp - 0x10]
cmp dword [rax], 0xfeef04bd
jne 0x14003dfc7
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, [0x140133020]
lea rcx, [rbp - 0x18]
call fcn.14000f8ac
mov rcx, r14
call fcn.1400ba0bc
lea rdx, [rbp - 0x18]
mov rcx, rbx
call fcn.14000291c
mov dword [rbp - 0x20], 1
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x14003e001
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x14003e01f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rbx
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret