Function at 0x1400700f0
Capabilities:
Get disk size

Disassembly:
push rdi
mov eax, 0x3ff0
call fcn.1400d8890
sub rsp, rax
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x4000], rbx
mov rax, qword [0x1401cde90]
xor rax, rsp
mov qword [rsp + 0x3fe0], rax
mov rdi, r8
mov r8d, dword [0x1401d5d60]
lea ecx, [r8 + 2]
lea eax, [r8 + 1]
imul ecx, eax
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
xor ebx, ebx
cmp ecx, 0x16
jne 0x1400701f7
mov r9d, ebx
mov dword [rsp + 0x38], ebx
test r8d, r8d
je 0x1400701f7
inc r9d
mov dword [rsp + 0x38], r9d
mov eax, r8d
and eax, 0x80000001
jge 0x140070188
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x14007019f
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov dword [0x1401d5d60], eax
jmp 0x1400701ae
lea r8d, [r8*2 + 1]
mov dword [0x1401d5d60], r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov ecx, r8d
sub ecx, eax
je 0x1400701d2
sub ecx, 2
je 0x1400701dd
dec ecx
je 0x1400701e7
jmp 0x1400701f2
add r8d, 2
mov dword [0x1401d5d60], r8d
inc r8d
mov dword [0x1401d5d60], r8d
add r8d, 2
mov dword [0x1401d5d60], r8d
jmp 0x140070166
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov r8d, dword [0x1401d5d60]
mov ecx, r8d
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, 0xd
jne 0x1400702d8
mov word [rsp + 0x360], bx
xor edx, edx
mov r8d, 0x3c7e
lea rcx, [rsp + 0x362]
call fcn.1400d8c20
mov dword [0x1401d5d60], ebx
mov r10d, ebx
mov dword [rsp + 0x40], ebx
nop dword [rax]
cmp r10d, 0x58
jge 0x1400702c8
mov r9d, ebx
mov dword [rsp + 0x34], ebx
nop dword [rax]
cmp r9d, 0x58
jge 0x1400702be
test r10d, r10d
je 0x1400702b4
test r9d, r9d
je 0x1400702b4
movsxd r8, r10d
movsxd rcx, r9d
mov rdx, r8
imul rdx, rdx, 0x58
add rdx, rcx
imul r8, r8, 0x58
add r8, rcx
movsx ecx, word [rsp + r8*2 + 0x2b0]
movsx eax, word [rsp + rdx*2 + 0x35e]
inc ecx
add ecx, eax
mov word [rsp + rdx*2 + 0x360], cx
inc r9d
mov dword [rsp + 0x34], r9d
jmp 0x140070270
inc r10d
mov dword [rsp + 0x40], r10d
jmp 0x140070260
movsx r8d, word [rsp + 0x3fde]
mov dword [0x1401d5d60], r8d
imul r8d, r8d
and r8d, 0x80000007
jge 0x1400702ef
dec r8d
or r8d, 0xfffffff8
inc r8d
cmp r8d, 5
jne 0x14007030a
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, 8
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], 0xff
lea rcx, [rsp + 0x48]
call qword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.14006ffe0
mov ecx, dword [0x1401d5d60]
imul ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 2
sub ecx, eax
cmp ecx, 2
jne 0x140070397
mov eax, 0x2f
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x30], ebx
nop
test eax, eax
je 0x14007038f
test ebx, ebx
je 0x14007038f
mov ecx, ebx
mov dword [rsp + 0x50], ebx
cdq
idiv ebx
mov ebx, edx
mov dword [rsp + 0x30], edx
mov eax, ecx
mov dword [rsp + 0x3c], ecx
jmp 0x140070370
add eax, ebx
mov dword [0x1401d5d60], eax
call fcn.14000a8d0
lea rcx, [rsp + 0x70]
call fcn.14005afa0
nop
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.140003310
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.14005b410
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x58]
add rax, 0xffffffffffffffe8
mov qword [rsp + 0x60], rax
lock add dword [rax + 0x10], 0xffffffff
jg 0x1400703ea
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x70]
call fcn.14005b280
mov eax, dword [rsp + 0x44]
jmp 0x1400703fd
mov rcx, qword [rsp + 0x3fe0]
xor rcx, rsp
call fcn.1400d37e0
mov rbx, qword [rsp + 0x4000]
add rsp, 0x3ff0
pop rdi
ret