Function at 0x5e3970
Capabilities:
Get disk size

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x70
mov rbp, rsp
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x48], rbp
nop
mov eax, dword [0x00693200]
mov dword [0x00696aa0], eax
mov byte [rbp + 0x67], 0
nop
mov eax, dword [0x00693200]
mov dword [0x00696aa0], eax
mov eax, dword [0x00695bc8]
cmp eax, dword [0x0069615c]
je 0x5e39c6
mov eax, dword [0x00695bc8]
mov dword [0x0069615c], eax
xor ecx, ecx
xor edx, edx
mov r8d, 1
lea r9, [rbp + 0x68]
lea rax, [rbp + 0x5c]
mov qword [rsp + 0x20], rax
call qword [0x006a9018]
test eax, eax
je 0x5e3d4c
mov eax, dword [0x00696cb0]
mov dword [0x006965e8], eax
mov eax, dword [0x00696cb0]
mov dword [0x006965e8], eax
mov eax, dword [0x00696128]
cmp eax, dword [0x00696314]
je 0x5e3a1e
mov eax, dword [0x00696128]
mov dword [0x00696314], eax
call fcn.005cff60
mov eax, dword [0x006933a0]
add eax, 1
cmp dword [0x006933a0], eax
jne 0x5e3a3f
mov ecx, dword [0x006932c4]
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x006958a0]
add eax, dword [0x00695bc8]
mov ecx, dword [0x00696158]
add ecx, dword [0x0069658c]
cmp eax, ecx
jle 0x5e3a67
mov eax, dword [0x0069658c]
mov dword [0x006958a0], eax
mov eax, dword [0x00695850]
add eax, dword [0x00695944]
mov ecx, dword [0x00695d98]
add ecx, dword [0x006962f8]
cmp eax, ecx
jle 0x5e3a88
call fcn.004096f0
nop
xor eax, eax
mov esi, dword [rbp + 0x5c]
sub esi, 1
mov dword [rbp + 0x60], eax
cmp dword [rbp + 0x60], esi
jg 0x5e3b83
sub esi, eax
add esi, 1
mov eax, dword [0x006932f0]
add eax, 1
cmp dword [0x006932f0], eax
jne 0x5e3abe
mov ecx, dword [0x00693288]
call sub.kernel32.dll_SetConsoleKeyShortcuts
movsxd rax, dword [rbp + 0x60]
mov rcx, qword [rbp + 0x68]
mov rdx, rax
lea rdx, [rdx + rdx*2]
cmp byte [rcx + rdx*8 + 0x10], 0
je 0x5e3ae7
mov rcx, qword [rbp + 0x68]
lea rax, [rax + rax*2]
cmp byte [rcx + rax*8 + 0x10], 4
jne 0x5e3b74
mov rax, qword [rbp + 0x68]
movsxd rcx, dword [rbp + 0x60]
lea rcx, [rcx + rcx*2]
mov eax, dword [rax + rcx*8]
movsxd rcx, dword [0x006a8a30]
cmp rax, rcx
jne 0x5e3b0b
cmp dword [0x006a88b4], 0x3c
jge 0x5e3b74
movsxd rbx, dword [rbp + 0x60]
mov rax, qword [rbp + 0x68]
mov rcx, rbx
lea rcx, [rcx + rcx*2]
cmp byte [rax + rcx*8 + 0x10], 0
jne 0x5e3b27
mov byte [rbp + 0x5b], 1
jmp 0x5e3b2b
mov byte [rbp + 0x5b], 0
lea rcx, [rbp + 0x40]
mov rax, qword [rbp + 0x68]
mov rdx, rbx
lea rdx, [rdx + rdx*2]
mov edx, dword [rax + rdx*8]
call fcn.005a4aa0
lea rcx, [rbp + 0x38]
mov rdx, qword [rbp + 0x40]
call fcn.004108e0
mov rax, qword [rbp + 0x68]
lea rbx, [rbx + rbx*2]
mov ecx, dword [rax + rbx*8]
mov rdx, qword [rbp + 0x38]
movzx r8, byte [rbp + 0x5b]
call fcn.005df470
mov eax, dword [0x006931e4]
mov dword [0x00696a84], eax
add dword [rbp + 0x60], 1
sub esi, 1
test esi, esi
jne 0x5e3aa2
nop
nop
call fcn.005d1e00
mov eax, dword [0x006931e4]
mov dword [0x00696a84], eax
mov eax, dword [0x00695c04]
cmp eax, dword [0x00696194]
je 0x5e3bb0
mov eax, dword [0x00695c04]
mov dword [0x00696194], eax
mov eax, dword [0x006965c0]
mov dword [0x0069618c], eax
call fcn.005dade0
cmp eax, dword [0x00693290]
jle 0x5e3bd3
mov dword [0x00693290], 0x57
call fcn.005d3250
mov eax, dword [0x006933c4]
add eax, 1
cmp dword [0x006933c4], eax
jne 0x5e3c29
mov eax, dword [0x0069394c]
test eax, eax
jge 0x5e3bf8
call fcn.0040afc0
mov ecx, dword [0x00695830]
test ecx, ecx
jge 0x5e3c07
call fcn.0040afc0
mov edx, dword [0x00695be8]
test edx, edx
jge 0x5e3c16
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 [0x00695910]
add eax, dword [0x00695c20]
mov ecx, dword [0x006962c4]
add ecx, dword [0x006965e4]
cmp eax, ecx
jle 0x5e3c51
mov eax, dword [0x006965e4]
mov dword [0x00695910], eax
mov eax, dword [0x00693278]
mov dword [0x00696ab4], eax
mov rcx, qword [rbp + 0x68]
call qword [0x006a9020]
mov eax, dword [0x00695b94]
add eax, dword [0x00696170]
mov ecx, dword [0x006965a0]
add ecx, dword [0x00696cb0]
cmp eax, ecx
jle 0x5e3c8f
mov eax, dword [0x00696cb0]
mov dword [0x00695b94], eax
call fcn.005da060
cmp eax, dword [0x0069327c]
jle 0x5e3ca6
mov dword [0x0069327c], 0x52
mov eax, dword [0x00695b94]
add eax, dword [0x00696170]
mov ecx, dword [0x006965a0]
add ecx, dword [0x00696cb0]
cmp eax, ecx
jle 0x5e3cce
mov eax, dword [0x00696cb0]
mov dword [0x00695b94], eax
mov eax, dword [0x00695c20]
cmp eax, dword [0x006962c8]
je 0x5e3ce8
mov eax, dword [0x00695c20]
mov dword [0x006962c8], eax
mov eax, dword [0x006958f0]
add eax, dword [0x00695bfc]
mov ecx, dword [0x00696190]
add ecx, dword [0x006965c0]
cmp eax, ecx
jle 0x5e3d10
mov eax, dword [0x006965c0]
mov dword [0x006958f0], eax
mov eax, dword [0x0069584c]
mov dword [0x0069428c], eax
jmp 0x5e3d4c
mov eax, dword [0x006934e4]
add eax, 1
cmp dword [0x006934e4], eax
jne 0x5e3d9d
mov eax, dword [0x00696184]
test eax, eax
jge 0x5e3d6c
call fcn.0040afc0
mov ecx, dword [0x00693510]
test ecx, ecx
jge 0x5e3d7b
call fcn.0040afc0
mov edx, dword [0x006940f8]
test edx, edx
jge 0x5e3d8a
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 [0x00694300]
mov dword [0x006940e4], eax
call fcn.005d62d0
cmp eax, dword [0x00696cdc]
jle 0x5e3dc0
mov dword [0x00696cdc], 0x34
mov dword [0x006931dc], 0x302
mov eax, dword [0x006931dc]
sub eax, 0x1a3
mov dword [0x006933a0], eax
mov eax, dword [0x00695908]
add eax, dword [0x00695c14]
mov ecx, dword [0x00696160]
add ecx, dword [0x00696590]
cmp eax, ecx
jle 0x5e3e04
mov eax, dword [0x00696590]
mov dword [0x00695908], eax
mov eax, dword [0x006934d8]
add eax, 1
cmp dword [0x006934d8], eax
jne 0x5e3e2b
mov eax, dword [0x006958d8]
test eax, eax
jge 0x5e3e24
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x006965a0]
mov dword [0x006962c8], eax
nop
lea rcx, [rbp + 0x38]
call fcn.0040e9c0
lea rcx, [rbp + 0x40]
call fcn.0040e920
movzx rax, byte [rbp + 0x67]
lea rsp, [rbp + 0x70]
pop rbx
pop rsi
pop rbp
ret