Function at 0x65a380
Capabilities:
Get disk size

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbp, rsp
mov rbx, rcx
mov rsi, rdx
mov eax, dword [0x0069936c]
add eax, 1
cmp dword [0x0069936c], eax
jne 0x65a3e2
mov eax, dword [0x006980dc]
test eax, eax
jge 0x65a3b1
call fcn.0040afc0
mov ecx, dword [0x00699608]
test ecx, ecx
jge 0x65a3c0
call fcn.0040afc0
mov edx, dword [0x00699c28]
test edx, edx
jge 0x65a3cf
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x0069b020]
add eax, 1
cmp dword [0x0069b020], eax
jne 0x65a433
mov eax, dword [0x00699a5c]
test eax, eax
jge 0x65a402
call fcn.0040afc0
mov ecx, dword [0x0069a9ac]
test ecx, ecx
jge 0x65a411
call fcn.0040afc0
mov edx, dword [0x0069b018]
test edx, edx
jge 0x65a420
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x006962f8]
mov dword [0x00695bf0], eax
call fcn.00651e20
cmp eax, dword [0x0069b034]
jle 0x65a456
mov dword [0x0069b034], 0x3a
mov eax, dword [0x006962f8]
mov dword [0x00695bf0], eax
mov eax, dword [0x0069938c]
cmp eax, dword [0x0069961c]
je 0x65a47c
mov eax, dword [0x0069938c]
mov dword [0x0069961c], eax
call fcn.0064d0a0
mov qword [rbp + 0x38], rbx
xor eax, eax
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx]
test rcx, rcx
je 0x65a496
mov eax, dword [rcx - 4]
mov qword [rbp + 0x30], rsi
xor ecx, ecx
mov rdx, qword [rbp + 0x30]
mov rdx, qword [rdx]
test rdx, rdx
je 0x65a4ab
mov ecx, dword [rdx - 4]
cmp eax, ecx
jg 0x65a4c6
mov qword [rbp + 0x28], rbx
xor edi, edi
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x65a4db
mov edi, dword [rax - 4]
jmp 0x65a4db
mov qword [rbp + 0x20], rsi
xor edi, edi
mov rax, qword [rbp + 0x20]
mov rax, qword [rax]
test rax, rax
je 0x65a4db
mov edi, dword [rax - 4]
mov eax, dword [0x00693908]
add eax, 1
cmp dword [0x00693908], eax
jne 0x65a52c
mov eax, dword [0x006942b4]
test eax, eax
jge 0x65a4fb
call fcn.0040afc0
mov ecx, dword [0x00696cdc]
test ecx, ecx
jge 0x65a50a
call fcn.0040afc0
mov edx, dword [0x00698130]
test edx, edx
jge 0x65a519
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, 1
movsxd rax, eax
mov rcx, qword [rbx]
test rcx, rcx
je 0x65a54a
lea rdx, [rax - 1]
mov r8d, dword [rcx - 4]
cmp rdx, r8
jb 0x65a54f
call fcn.0040afc0
mov edx, 1
movsxd rdx, edx
mov r8, qword [rsi]
test r8, r8
je 0x65a56d
lea r9, [rdx - 1]
mov r10d, dword [r8 - 4]
cmp r9, r10
jb 0x65a572
call fcn.0040afc0
lea rcx, [rcx + rax*2 - 2]
lea rdx, [r8 + rdx*2 - 2]
mov r8d, edi
call fcn.00659f40
mov ebx, eax
call fcn.00626020
mov eax, dword [0x00699394]
add eax, dword [0x00699620]
mov ecx, dword [0x006974d8]
add ecx, dword [0x00698e40]
cmp ecx, eax
jle 0x65a5b3
mov ecx, dword [0x00699620]
mov dword [0x006974d8], ecx
mov ecx, dword [0x006974d8]
add ecx, dword [0x00698e40]
cmp ecx, eax
jle 0x65a5cf
mov eax, dword [0x00699620]
mov dword [0x006974d8], eax
mov eax, dword [0x00699370]
cmp eax, dword [0x006995fc]
je 0x65a5e9
mov eax, dword [0x00699370]
mov dword [0x006995fc], eax
call fcn.0063a830
mov eax, ebx
lea rsp, [rbp + 0x48]
pop rbx
pop rsi
pop rdi
pop rbp
ret