Function at 0x65a8c0
Capabilities:
Get disk size

Disassembly:
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x30
mov qword [rsp + 0x28], rcx
mov eax, dword [0x00696a78]
add eax, dword [0x00697478]
mov ecx, dword [0x00698130]
add ecx, dword [0x00698e7c]
cmp eax, ecx
jle 0x65a8f1
call fcn.004096f0
call fcn.00649cf0
cmp eax, dword [0x0069b020]
jle 0x65a908
mov dword [0x0069b020], 0x35
mov eax, dword [0x0069a9ec]
mov dword [0x0069a014], eax
mov eax, dword [0x00698e70]
add eax, dword [0x006994b8]
mov ecx, dword [0x00697468]
add ecx, dword [0x00698124]
cmp ecx, eax
jle 0x65a93c
mov ecx, dword [0x006994b8]
mov dword [0x00697468], ecx
mov ecx, dword [0x00697468]
add ecx, dword [0x00698124]
cmp ecx, eax
jle 0x65a958
mov eax, dword [0x006994b8]
mov dword [0x00697468], eax
mov eax, dword [0x0069950c]
cmp eax, dword [0x00699c28]
je 0x65a972
mov eax, dword [0x0069950c]
mov dword [0x00699c28], eax
mov eax, dword [0x00697464]
add eax, dword [0x00698adc]
mov ecx, dword [0x00699088]
add ecx, dword [0x00699648]
cmp eax, ecx
jle 0x65a993
call fcn.004096f0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x65a9a4
mov rax, qword [rax - 8]
mov rsi, rax
mov eax, 0x80000000
lea rax, [rax + rsi]
mov ecx, 0xffffffff
cmp rax, rcx
jbe 0x65a9c1
call fcn.0040afc0
mov eax, dword [0x00696898]
mov dword [0x00695c20], eax
mov dword [0x006931e0], 0x317
mov eax, dword [0x006931e0]
sub eax, 0x19e
mov dword [0x00693500], eax
mov eax, dword [0x0069a9d4]
mov dword [0x00699d50], eax
mov eax, dword [0x00697490]
add eax, dword [0x00698774]
mov ecx, dword [0x006990b4]
add ecx, dword [0x006995d8]
cmp eax, ecx
jle 0x65aa16
call fcn.004096f0
mov eax, dword [0x00697490]
add eax, dword [0x00698774]
mov ecx, dword [0x006990b4]
add ecx, dword [0x006995d8]
cmp eax, ecx
jle 0x65aa37
call fcn.004096f0
mov eax, dword [0x0069936c]
cmp eax, dword [0x006995f8]
je 0x65aa51
mov eax, dword [0x0069936c]
mov dword [0x006995f8], eax
mov eax, dword [0x006933ec]
add eax, 1
cmp dword [0x006933ec], eax
jne 0x65aaa2
mov eax, dword [0x0069987c]
test eax, eax
jge 0x65aa71
call fcn.0040afc0
mov ecx, dword [0x0069afdc]
test ecx, ecx
jge 0x65aa80
call fcn.0040afc0
mov edx, dword [0x006934bc]
test edx, edx
jge 0x65aa8f
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 [0x006978d8]
mov dword [0x006968b8], eax
call fcn.006568b0
cmp eax, dword [0x00693274]
jle 0x65aac5
mov dword [0x00693274], 0x8f
xor edi, edi
mov eax, 1
mov r14d, esi
sub r14d, 1
mov ebx, eax
cmp ebx, r14d
jg 0x65ab9a
sub r14d, eax
add r14d, 1
mov r13d, ebx
sub r13d, 1
movsxd rax, r13d
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx]
test rcx, rcx
je 0x65ab04
cmp rax, qword [rcx - 8]
jb 0x65ab09
call fcn.0040afc0
movsxd rdx, ebx
mov r8, qword [rsp + 0x28]
mov r8, qword [r8]
test r8, r8
je 0x65ab1f
cmp rdx, qword [r8 - 8]
jb 0x65ab24
call fcn.0040afc0
add rax, rax
lea rcx, [rcx + rax*8]
add rdx, rdx
lea rdx, [r8 + rdx*8]
call fcn.0065a380
test eax, eax
jle 0x65ab8a
movsxd r13, r13d
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
test rax, rax
je 0x65ab51
cmp r13, qword [rax - 8]
jb 0x65ab56
call fcn.0040afc0
movsxd rcx, ebx
mov rdx, qword [rsp + 0x28]
mov rdx, qword [rdx]
test rdx, rdx
je 0x65ab6c
cmp rcx, qword [rdx - 8]
jb 0x65ab71
call fcn.0040afc0
add r13, r13
lea rax, [rax + r13*8]
add rcx, rcx
lea rdx, [rdx + rcx*8]
mov rcx, rax
call fcn.0065a600
mov dil, 1
add ebx, 1
sub r14d, 1
test r14d, r14d
jne 0x65aae7
nop
sub esi, 1
test dil, dil
jne 0x65aac5
call fcn.00638150
call fcn.00658020
cmp eax, dword [0x006932a8]
jle 0x65abc3
mov dword [0x006932a8], 0x9c
call fcn.005a6160
cmp eax, dword [0x006935f8]
jle 0x65abda
mov dword [0x006935f8], 0x13d
mov eax, dword [0x0069b028]
mov dword [0x0069a9bc], eax
mov eax, dword [0x0069b028]
mov dword [0x0069a9bc], eax
mov eax, dword [0x00699374]
cmp eax, dword [0x00699890]
je 0x65ac0c
mov eax, dword [0x00699374]
mov dword [0x00699890], eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r13
pop r14
ret