Function at 0x140064950
Capabilities:
Get disk size

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xd0
mov qword [rbp - 0x39], 0xfffffffffffffffe
mov qword [rsp + 0x128], rbx
mov rax, qword [0x1401cde90]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r12, r8
mov r14, rdx
mov r15, rcx
cmp qword [rcx + 0x40], 0
je 0x1400649d6
lea rax, str.Could_not_share_the_server_twice
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.1400d6c68
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rbp - 0x61], rax
lea rax, vtable.CRSimpleIPCExceptionServerException.0
mov qword [rbp - 0x61], rax
lea rdx, [0x140198448]
lea rcx, [rbp - 0x61]
call fcn.1400db6b8
int3
lea rcx, [rbp - 0x61]
call fcn.140063f90
mov rcx, rax
mov rax, qword [rax]
mov qword [rbp - 0x11], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 9], rax
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x31]
call fcn.140063e40
nop
mov r8, rax
lea rcx, [rbp - 1]
call fcn.1400669d0
nop
cmp qword [rbp - 0x19], 8
jb 0x140064a1c
mov rcx, qword [rbp - 0x31]
call fcn.1400d37c0
mov qword [rbp - 0x19], 7
xor r13d, r13d
mov qword [rbp - 0x21], r13
mov word [rbp - 0x31], r13w
mov rax, qword [rbp - 0x11]
mov qword [r14], rax
mov rax, qword [rbp - 9]
mov qword [r14 + 8], rax
lea r9, [rbp - 1]
cmp qword [rbp + 0x17], 8
cmovae r9, qword [rbp - 1]
xor r8d, r8d
lea edx, [r13 + 1]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov rdx, rax
lea rcx, [r15 + 0x40]
call fcn.140066420
mov r8d, dword [0x1401d5d60]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
sub ecx, eax
cmp ecx, 2
jne 0x140064ad2
lea ecx, [r13 + 0x28]
call fcn.1400d2e28
mov rdi, rax
mov ebx, r13d
call fcn.1400d41a0
add eax, dword [0x1401d5d60]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, 0xa
jl 0x140064aa3
mov eax, dword [rdi + 0x24]
mov dword [0x1401d5d60], eax
mov rcx, rdi
call fcn.1400d3f08
mov r8d, dword [0x1401d5d60]
cmp qword [r15 + 0x40], r13
jne 0x140064b18
lea rax, str.Failed_to_create_sync_event
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.1400d6c68
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rbp - 0x61], rax
lea rax, vtable.CRSimpleIPCExceptionServerException.0
mov qword [rbp - 0x61], rax
lea rdx, [0x140198448]
lea rcx, [rbp - 0x61]
call fcn.1400db6b8
int3
mov qword [rbp - 0x41], r13
imul r8d, r8d
mov eax, 0x2aaaaaab
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub r8d, eax
cmp r8d, 3
jne 0x140064b78
lea ecx, [r8 + 0x25]
call fcn.1400d2e28
mov rdi, rax
mov rbx, r13
call fcn.1400d41a0
add eax, dword [0x1401d5d60]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, 0xa
jl 0x140064b50
mov eax, dword [rdi + 0x24]
mov dword [0x1401d5d60], eax
mov rcx, rdi
call fcn.1400d3f08
mov rbx, qword [r15 + 0x10]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 0x80000000
lea r9, [rbp - 0x41]
mov r8, r12
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x140064beb
lea rax, str.Duplicate_failure_0
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.1400d6c68
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rbp - 0x61], rax
lea rax, vtable.CRSimpleIPCExceptionServerException.0
mov qword [rbp - 0x61], rax
lea rdx, [0x140198448]
lea rcx, [rbp - 0x61]
call fcn.1400db6b8
int3
mov rax, qword [rbp - 0x41]
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x49], r13
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, 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 0x140064c4d
mov ecx, r13d
test r8d, r8d
je 0x140064c47
mov eax, r8d
and eax, 1
add ecx, eax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
jne 0x140064c32
mov dword [0x1401d5d60], ecx
mov rbx, qword [r15 + 0x28]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 0x40000000
lea r9, [rbp - 0x49]
mov r8, r12
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x140064cc0
lea rax, str.Duplicate_failure_1
mov qword [rbp - 0x69], rax
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x31]
call fcn.1400d6c68
nop
lea rax, vtable.CRSimpleIPCException.0
mov qword [rbp - 0x31], rax
lea rax, vtable.CRSimpleIPCExceptionServerException.0
mov qword [rbp - 0x31], rax
lea rdx, [0x140198448]
lea rcx, [rbp - 0x31]
call fcn.1400db6b8
int3
mov rax, qword [rbp - 0x49]
mov qword [rbp - 0x69], rax
mov r8d, dword [0x1401d5d60]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xa
jne 0x140064d11
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov r8d, dword [0x1401d5d60]
mov rax, qword [rbp - 0x41]
mov qword [r14 + 0x10], rax
mov rax, qword [rbp - 0x49]
mov qword [r14 + 0x18], rax
mov qword [rbp - 0x61], r13
imul r8d, r8d
mov eax, 0x92492493
imul r8d
add edx, r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xe
sub r8d, edx
cmp r8d, 6
jne 0x140064d50
dec dword [0x1401d7738]
mov qword [rbp - 0x69], r13
lea rcx, [r15 + 0x28]
call fcn.1400663a0
lea rcx, [r15 + 0x10]
call fcn.1400663a0
nop
cmp qword [rbp + 0x17], 8
jb 0x140064d77
mov rcx, qword [rbp - 1]
call fcn.1400d37c0
mov qword [rbp + 0x17], 7
mov qword [rbp + 0xf], r13
mov word [rbp - 1], r13w
mov rax, r14
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1400d37e0
mov rbx, qword [rsp + 0x128]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret