Function at 0x5b00b0
Capabilities:
Get disk size

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbp, rsp
mov rbx, rcx
mov eax, dword [0x0069413c]
mov dword [0x006940f8], eax
mov eax, dword [0x00693438]
add eax, dword [0x006934d8]
mov ecx, dword [0x0069351c]
add ecx, dword [0x00693560]
cmp eax, ecx
jle 0x5b00eb
call fcn.004096f0
call fcn.005aba50
call fcn.005ad620
call fcn.005ad620
mov eax, dword [0x0069412c]
mov dword [0x006940e8], eax
lea rsi, [rbx + 0x28]
mov rax, qword [rbx + 0x18]
movzx rax, byte [rax]
mov byte [rsi + 3], al
mov ecx, eax
call fcn.005af240
mov byte [rsi], al
movzx rcx, byte [rsi + 3]
call fcn.005af340
mov byte [rsi + 1], al
movzx rcx, byte [rsi + 3]
call fcn.005af510
mov byte [rsi + 2], al
lea rax, [0x00694a10]
movzx rcx, byte [rbx + 1]
mov rax, qword [rax + rcx*8]
movzx rcx, byte [rsi + 3]
movzx rax, byte [rax + rcx]
mov byte [rsi + 4], al
lea rcx, [0x00694db8]
movzx rax, al
shr eax, 1
and eax, 7
mov eax, eax
movzx rax, byte [rcx + rax]
mov byte [rbx + 0x38], al
lea rax, [rbx + 0x18]
add qword [rax], 1
movzx rax, byte [rsi + 4]
test al, 0x10
seta al
test al, al
je 0x5b0309
mov qword [rbp + 0x38], rbx
mov eax, dword [0x006940cc]
mov dword [0x0069397c], eax
mov eax, dword [0x006940cc]
mov dword [0x0069397c], eax
mov eax, dword [0x00693958]
cmp eax, dword [0x006940ac]
je 0x5b01c1
mov eax, dword [0x00693958]
mov dword [0x006940ac], eax
mov rax, qword [rbp + 0x38]
lea rdi, [rax + 0x2d]
mov byte [rdi + 4], 1
mov rax, qword [rbp + 0x38]
mov rax, qword [rax + 0x18]
movzx rax, byte [rax]
mov byte [rdi + 3], al
mov ecx, eax
call fcn.005af5c0
mov byte [rdi + 2], al
movzx rcx, byte [rdi + 3]
call fcn.005af650
mov byte [rdi + 1], al
movzx rcx, byte [rdi + 3]
call fcn.005af6e0
mov byte [rdi], al
mov rax, qword [rbp + 0x38]
lea rax, [rax + 0x18]
add qword [rax], 1
mov eax, dword [0x006931f4]
add eax, 1
cmp dword [0x006931f4], eax
jne 0x5b0234
mov ecx, dword [0x006940d4]
mov edx, dword [0x006931d0]
mov r8d, dword [0x006932b8]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x00693438]
mov dword [0x006933d0], eax
mov eax, dword [0x00693528]
add eax, dword [0x00693908]
mov ecx, dword [0x0069394c]
add ecx, dword [0x006940a0]
cmp eax, ecx
jle 0x5b0268
mov eax, dword [0x006940a0]
mov dword [0x00693528], eax
mov eax, dword [0x006932c0]
add eax, 1
cmp dword [0x006932c0], eax
jne 0x5b0284
mov ecx, dword [0x006932bc]
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x006931d0]
add eax, 1
cmp dword [0x006931d0], eax
jne 0x5b02b4
mov ecx, dword [0x006942ac]
mov edx, dword [0x00693504]
mov r8d, dword [0x006935ec]
mov r9d, dword [0x0069394c]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x0069339c]
sub eax, dword [0x006932c4]
mov dword [0x006932c4], eax
mov eax, dword [0x006934cc]
add eax, dword [0x00693514]
mov ecx, dword [0x00693558]
add ecx, dword [0x00693938]
cmp eax, ecx
jle 0x5b02e7
call fcn.004096f0
mov eax, dword [0x006940d0]
mov dword [0x00693980], eax
cmp byte [rbx + 0x38], 0
jne 0x5b0309
mov rcx, rbx
call fcn.005af8a0
test al, al
jne 0x5b0309
mov byte [rbx + 0x38], 4
cmp byte [rbx + 0x38], 0
jbe 0x5b0317
mov rcx, rbx
call fcn.005afd20
lea rax, [rsi + 4]
or byte [rax], 0x80
mov eax, dword [0x00693504]
add eax, dword [0x00693548]
mov ecx, dword [0x00693908]
add ecx, dword [0x00693928]
cmp eax, ecx
jle 0x5b0346
mov eax, dword [0x00693928]
mov dword [0x00693504], eax
mov eax, dword [0x0069429c]
mov dword [0x00694114], eax
mov eax, dword [0x006932b0]
add eax, 1
cmp dword [0x006932b0], eax
jne 0x5b038c
mov ecx, dword [0x00693518]
mov edx, dword [0x00693918]
mov r8d, dword [0x00693980]
mov r9d, dword [0x006940f4]
mov eax, dword [0x006933d0]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
mov eax, dword [0x006931e8]
add eax, 1
cmp dword [0x006931e8], eax
jne 0x5b03b5
mov ecx, dword [0x006940f4]
mov edx, dword [0x006942a0]
mov r8d, dword [0x00694304]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x00693204]
add eax, 1
cmp dword [0x00693204], eax
jne 0x5b03e5
mov ecx, dword [0x006937fc]
mov edx, dword [0x00693980]
mov r8d, dword [0x006940f4]
mov r9d, dword [0x00694138]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x00693428]
add eax, dword [0x006934c4]
mov ecx, dword [0x00693508]
add ecx, dword [0x0069352c]
cmp eax, ecx
jle 0x5b0406
call fcn.004096f0
mov eax, dword [0x006931fc]
add eax, 1
cmp dword [0x006931fc], eax
jne 0x5b0440
mov ecx, dword [0x00693544]
mov edx, dword [0x00693948]
mov r8d, dword [0x006940bc]
mov r9d, dword [0x00694124]
mov eax, dword [0x006942cc]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
call fcn.005aeb90
mov eax, dword [0x0069429c]
add eax, dword [0x006942c0]
mov ecx, dword [0x00694304]
add ecx, dword [0x006931f0]
cmp eax, ecx
jle 0x5b046b
mov dword [0x0069429c], 0x72
lea rsp, [rbp + 0x48]
pop rbx
pop rsi
pop rdi
pop rbp
ret