Function at 0x1400651a0
Capabilities:
Get disk size

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rdi, rcx
lea rax, vtable.CRSimpleIPCChannel.0
mov qword [rcx], rax
mov eax, dword [0x1401d5d60]
lea ecx, [rax + 1]
imul ecx, eax
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, 0x17
jne 0x14006521e
mov eax, 0xdd
mov r8d, 0x11
nop dword [rax]
test r8d, r8d
je 0x140065215
mov ecx, r8d
cdq
idiv r8d
mov r8d, edx
mov eax, ecx
test ecx, ecx
jne 0x140065200
add eax, r8d
mov dword [0x1401d5d60], eax
xor esi, esi
cmp byte [rdi + 0x10], sil
je 0x14006524b
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_CancelIo]
mov dword [rsp + 0x68], esi
lea rdx, [rdi + 0x18]
lea r9d, [rsi + 1]
lea r8, [rsp + 0x68]
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
cmp byte [rdi + 0x78], sil
je 0x140065282
mov rcx, qword [rdi + 0xa8]
call qword [sym.imp.KERNEL32.dll_CancelIo]
mov dword [rsp + 0x68], esi
lea rdx, [rdi + 0x80]
mov r9d, 1
lea r8, [rsp + 0x68]
mov rcx, qword [rdi + 0xa8]
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
nop
lea rbp, vtable.CRMutex.0
mov qword [rdi + 0x130], rbp
lea rcx, [rdi + 0x138]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
mov rcx, qword [rdi + 0x128]
test rcx, rcx
je 0x1400652f2
cmp rcx, 0xffffffffffffffff
je 0x1400652b6
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x1401d5d60]
imul ecx, ecx
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0xb
jne 0x1400652f2
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
nop
lea rbx, [rdi + 0x100]
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x68], rbx
mov rcx, rbx
call fcn.140066640
nop
mov rcx, qword [rbx]
call fcn.1400d37c0
mov qword [rbx], rsi
mov qword [rdi + 0xd0], rbp
lea rcx, [rdi + 0xd8]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
mov rcx, qword [rdi + 0xb0]
test rcx, rcx
je 0x140065352
call fcn.1400d37c0
mov qword [rdi + 0xb0], rsi
mov qword [rdi + 0xb8], rsi
mov qword [rdi + 0xc0], rsi
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x1400653a6
cmp rcx, 0xffffffffffffffff
je 0x14006536a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x1401d5d60]
imul ecx, ecx
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0xb
jne 0x1400653a6
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
nop
mov rcx, qword [rdi + 0x60]
test rcx, rcx
je 0x1400653c0
call fcn.1400d37c0
mov qword [rdi + 0x60], rsi
mov qword [rdi + 0x68], rsi
mov qword [rdi + 0x70], rsi
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x1400653da
call fcn.1400d37c0
mov qword [rdi + 0x48], rsi
mov qword [rdi + 0x50], rsi
mov qword [rdi + 0x58], rsi
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x14006542a
cmp rcx, 0xffffffffffffffff
je 0x1400653ef
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x1401d5d60]
imul ecx, ecx
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0xb
jne 0x14006542a
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret