Function at 0x605980
Capabilities:
Get disk size

Disassembly:
push rbp
push rbx
sub rsp, 0xa8
mov rbp, rsp
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xc0], rcx
mov qword [rbp + 0xc8], rdx
lea rcx, [rbp + 0xc0]
call fcn.0040eaf0
nop
mov eax, dword [0x006974d4]
mov dword [0x00696cd0], eax
mov eax, dword [0x00695940]
add eax, dword [0x00696138]
mov ecx, dword [0x00696598]
add ecx, dword [0x00696ac8]
cmp eax, ecx
jle 0x6059df
mov eax, dword [0x00696ac8]
mov dword [0x00695940], eax
mov eax, dword [0x0069811c]
add eax, dword [0x006932e4]
mov ecx, dword [0x006934d0]
add ecx, dword [0x006937f8]
cmp eax, ecx
jle 0x605a05
mov dword [0x0069811c], 0xe3
mov eax, dword [0x00697470]
mov dword [0x00696cc4], eax
mov eax, dword [0x00697470]
mov dword [0x00696cc4], eax
mov eax, dword [0x006965e0]
cmp eax, dword [0x00696cd8]
je 0x605a37
mov eax, dword [0x006965e0]
mov dword [0x00696cd8], eax
call fcn.005ea0b0
mov byte [rbp + 0x97], 0
nop
mov rcx, qword [rbp + 0xc8]
lea rdx, [rbp + 0x88]
mov r8d, 8
xor r9, r9
call qword [0x006a92b8]
cmp eax, 8
jne 0x6061b6
call fcn.005e7700
mov eax, dword [0x00695d94]
add eax, dword [0x0069631c]
mov ecx, dword [0x00696a98]
add ecx, dword [0x00697460]
cmp eax, ecx
jle 0x605a98
mov eax, dword [0x00697460]
mov dword [0x00695d94], eax
call fcn.005ff400
cmp eax, dword [0x0069329c]
jle 0x605aaf
mov dword [0x0069329c], 0x65
mov eax, dword [0x00695be8]
mov dword [0x00695890], eax
mov eax, dword [0x00697468]
mov dword [0x00696aa0], eax
mov eax, dword [0x00697468]
mov dword [0x00696aa0], eax
mov eax, dword [0x006965a8]
cmp eax, dword [0x00696a84]
je 0x605aed
mov eax, dword [0x006965a8]
mov dword [0x00696a84], eax
mov eax, dword [0x006932cc]
add eax, 1
cmp dword [0x006932cc], eax
jne 0x605b14
mov eax, dword [0x00695894]
test eax, eax
jge 0x605b0d
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov rcx, qword [rbp + 0xc0]
call fcn.00410050
mov rbx, rax
mov rcx, rbx
xor edx, edx
lea r8, [rbp + 0x54]
call qword [0x006a8b80]
test eax, eax
je 0x6060b5
mov eax, dword [0x00697470]
mov dword [0x00696aac], eax
mov eax, dword [0x0069617c]
add eax, dword [0x00696584]
mov ecx, dword [0x00696ab8]
add ecx, dword [0x00697480]
cmp eax, ecx
jle 0x605b6e
mov eax, dword [0x00697480]
mov dword [0x0069617c], eax
mov eax, dword [0x006932a0]
add eax, 1
cmp dword [0x006932a0], eax
jne 0x605b95
mov eax, dword [0x006974b0]
test eax, eax
jge 0x605b8e
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x00695bc0]
mov dword [0x00695868], eax
mov rcx, rbx
mov edx, 0x80000000
mov r8d, 1
xor r9, r9
mov dword [rsp + 0x20], 3
mov dword [rsp + 0x28], 0x80
mov qword [rsp + 0x30], 0
call qword [0x006a8c28]
mov ecx, 0xffffffff
cmp rax, rcx
jbe 0x605be3
call fcn.0040afc0
mov dword [rbp + 0x7c], eax
mov eax, dword [rbp + 0x7c]
cmp rax, 0xffffffffffffffff
je 0x605f21
call sub.kernel32.dll_GetLastError_2
test eax, eax
jne 0x605f21
mov ecx, 0x1ff4
call fcn.00409030
mov qword [rbp + 0x98], rax
nop
mov ecx, dword [rbp + 0x7c]
mov rdx, qword [rbp + 0x88]
xor r8, r8
xor r9, r9
call qword [0x006a8da0]
mov eax, dword [rbp + 0x70]
mov qword [rbp + 0x80], rax
shl qword [rbp + 0x80], 0x20
mov eax, dword [rbp + 0x74]
add qword [rbp + 0x80], rax
mov eax, dword [0x00698134]
add eax, dword [0x006932fc]
mov ecx, dword [0x00693438]
add ecx, dword [0x0069390c]
cmp eax, ecx
jle 0x605c6b
mov dword [0x00698134], 0x102
mov eax, dword [0x00697478]
mov dword [0x00696ab0], eax
call fcn.005e8520
mov rax, qword [rbp + 0x88]
sub qword [rbp + 0x80], rax
mov eax, dword [0x00697478]
mov dword [0x00696ab0], eax
mov eax, dword [0x0069689c]
cmp eax, dword [0x00696cb4]
je 0x605cb0
mov eax, dword [0x0069689c]
mov dword [0x00696cb4], eax
mov eax, dword [0x00697470]
mov dword [0x00696aa8], eax
mov eax, dword [0x006934b8]
add eax, 1
cmp dword [0x006934b8], eax
jne 0x605d24
mov eax, dword [0x00698100]
test eax, eax
jge 0x605cdc
call fcn.0040afc0
mov ecx, dword [0x00693404]
test ecx, ecx
jge 0x605ceb
call fcn.0040afc0
mov edx, dword [0x00693930]
test edx, edx
jge 0x605cfa
call fcn.0040afc0
mov r8d, dword [0x006942d8]
test r8d, r8d
jge 0x605d0b
call fcn.0040afc0
mov r9d, ecx
mov r10d, edx
mov r11d, r8d
mov ecx, eax
mov edx, r9d
mov r8d, r10d
mov r9d, r11d
call sub.advapi32.dll_CryptDuplicateKey
call fcn.005ff400
cmp eax, dword [0x00693294]
jle 0x605d3b
mov dword [0x00693294], 0x63
mov eax, dword [0x0069342c]
add eax, 1
cmp dword [0x0069342c], eax
jne 0x605d62
mov eax, dword [0x006931d0]
test eax, eax
jge 0x605d5b
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x00697470]
mov dword [0x00696aa8], eax
mov eax, dword [0x006965ec]
cmp eax, dword [0x00696ac8]
je 0x605d88
mov eax, dword [0x006965ec]
mov dword [0x00696ac8], eax
mov eax, dword [0x00696160]
add eax, dword [0x006965bc]
mov ecx, dword [0x00696cb4]
add ecx, dword [0x006974b8]
cmp eax, ecx
jle 0x605db0
mov eax, dword [0x006974b8]
mov dword [0x00696160], eax
call fcn.005ea730
mov rcx, qword [rbp + 0xc8]
lea rdx, [rbp + 0x80]
mov r8d, 8
xor r9, r9
call qword [0x006a92b0]
cmp eax, 8
jne 0x605e65
jmp 0x605e49
cmp byte [0x006922d8], 0
jne 0x605e53
mov rbx, qword [rbp + 0x98]
mov ecx, dword [rbp + 0x7c]
mov rdx, rbx
mov r8d, 0x1ff4
lea r9, [rbp + 0x78]
mov qword [rsp + 0x20], 0
call qword [0x006a8c30]
test eax, eax
je 0x605e3f
mov eax, dword [rbp + 0x78]
test eax, eax
jge 0x605e1e
call fcn.0040afc0
mov rcx, qword [rbp + 0xc8]
mov rdx, rbx
mov r8d, eax
xor r9, r9
call qword [0x006a92b0]
movsxd rax, eax
mov ecx, dword [rbp + 0x78]
cmp rax, rcx
jne 0x605e53
mov eax, dword [rbp + 0x78]
sub qword [rbp + 0x80], rax
cmp qword [rbp + 0x80], 0
jg 0x605dde
nop
cmp qword [rbp + 0x80], 0
jne 0x605e65
mov byte [rbp + 0x97], 1
nop
mov rcx, qword [rbp + 0x98]
call fcn.00409060
call fcn.005ff550
cmp eax, dword [0x006932ac]
jle 0x605e89
mov dword [0x006932ac], 0x69
mov eax, dword [0x006933a4]
add eax, 1
cmp dword [0x006933a4], eax
jne 0x605f07
mov eax, dword [0x006962e0]
test eax, eax
jge 0x605ea9
call fcn.0040afc0
mov ecx, dword [0x00696e88]
test ecx, ecx
jge 0x605eb8
call fcn.0040afc0
mov edx, dword [0x00697c84]
test edx, edx
jge 0x605ec7
call fcn.0040afc0
mov r8d, dword [0x006932c4]
test r8d, r8d
jge 0x605ed8
call fcn.0040afc0
mov r9d, dword [0x00694138]
test r9d, r9d
jge 0x605ee9
call fcn.0040afc0
mov r10d, ecx
mov r11d, edx
mov ebx, r8d
mov dword [rsp + 0x20], r9d
mov ecx, eax
mov edx, r10d
mov r8d, r11d
mov r9d, ebx
call sub.kernel32.dll_LockFile
mov eax, dword [0x00695898]
mov dword [0x00694304], eax
mov ecx, dword [rbp + 0x7c]
call qword [0x006a8bc0]
jmp 0x6061b6
call fcn.005ff550
cmp eax, dword [0x006932a4]
jle 0x605f38
mov dword [0x006932a4], 0x67
mov eax, dword [0x00693410]
add eax, 1
cmp dword [0x00693410], eax
jne 0x605f89
mov eax, dword [0x006942ac]
test eax, eax
jge 0x605f58
call fcn.0040afc0
mov ecx, dword [0x00695bf0]
test ecx, ecx
jge 0x605f67
call fcn.0040afc0
mov edx, dword [0x00696318]
test edx, edx
jge 0x605f76
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 [0x006958d8]
add eax, dword [0x00695c14]
mov ecx, dword [0x006962e4]
add ecx, dword [0x006968b8]
cmp eax, ecx
jle 0x605faa
call fcn.004096f0
mov eax, dword [0x00698134]
add eax, dword [0x006932f8]
mov ecx, dword [0x006934e4]
add ecx, dword [0x00693960]
cmp eax, ecx
jle 0x605fd0
mov dword [0x00698134], 0xde
mov eax, dword [0x0069813c]
mov dword [0x006974b8], eax
mov eax, dword [0x00696118]
add eax, dword [0x00696574]
mov ecx, dword [0x00696aa8]
add ecx, dword [0x00697470]
cmp eax, ecx
jle 0x606004
mov eax, dword [0x00697470]
mov dword [0x00696118], eax
mov eax, dword [0x00695c0c]
mov dword [0x006958d0], eax
mov eax, dword [0x00695c0c]
mov dword [0x006958d0], eax
mov eax, dword [0x00696a94]
cmp eax, dword [0x0069745c]
je 0x606036
mov eax, dword [0x00696a94]
mov dword [0x0069745c], eax
mov eax, dword [0x00693300]
add eax, 1
cmp dword [0x00693300], eax
jne 0x606087
mov eax, dword [0x00696a74]
test eax, eax
jge 0x606056
call fcn.0040afc0
mov ecx, dword [0x00697e7c]
test ecx, ecx
jge 0x606065
call fcn.0040afc0
mov edx, dword [0x006932dc]
test edx, edx
jge 0x606074
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov qword [rbp + 0x80], 0xffffffffffffffff
mov rcx, qword [rbp + 0xc8]
lea rdx, [rbp + 0x80]
mov r8d, 8
xor r9, r9
call qword [0x006a92b0]
jmp 0x6061b6
mov qword [rbp + 0x80], 0xffffffffffffffff
mov eax, dword [0x006931e0]
mov dword [0x006978d8], eax
mov eax, dword [0x00696148]
add eax, dword [0x006965a8]
mov ecx, dword [0x00696ca0]
add ecx, dword [0x0069744c]
cmp eax, ecx
jle 0x6060f4
mov eax, dword [0x0069744c]
mov dword [0x00696148], eax
mov eax, dword [0x006958ec]
mov dword [0x006942e4], eax
mov rcx, qword [rbp + 0xc8]
lea rdx, [rbp + 0x80]
mov r8d, 8
xor r9, r9
call qword [0x006a92b0]
jmp 0x6061b6
mov eax, dword [0x00695be8]
mov dword [0x00695890], eax
nop
lea rcx, [rbp + 0xc0]
call fcn.0040e9c0
movzx rax, byte [rbp + 0x97]
lea rsp, [rbp + 0xa8]
pop rbx
pop rbp
ret