Function at 0x616ee0
Capabilities:
Get disk size

Disassembly:
push rbp
push rbx
sub rsp, 0xae8
mov rbp, rsp
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x90], 0
mov qword [rbp + 0x48], rbp
mov qword [rbp + 0xb00], rcx
mov qword [rbp + 0xb08], rdx
nop
mov eax, dword [0x00695930]
add eax, dword [0x0069613c]
mov ecx, dword [0x0069630c]
add ecx, dword [0x00696894]
cmp eax, ecx
jle 0x616f42
mov eax, dword [0x00696894]
mov dword [0x00695930], eax
call fcn.00606240
cmp eax, dword [0x0069327c]
jle 0x616f59
mov dword [0x0069327c], 0x4a
mov eax, dword [0x00697c84]
mov dword [0x00696e74], eax
mov eax, dword [0x00695944]
add eax, dword [0x00695d7c]
mov ecx, dword [0x0069631c]
add ecx, dword [0x00696aac]
cmp eax, ecx
jle 0x616f86
call fcn.004096f0
call fcn.006011a0
cmp eax, dword [0x006931dc]
jle 0x616f9d
mov dword [0x006931dc], 0x51
call fcn.005fd1c0
cmp eax, dword [0x00698b0c]
jle 0x616fb4
mov dword [0x00698b0c], 0x39
mov dword [0x006932cc], 0x30f
mov eax, dword [0x006932cc]
sub eax, 0x1a9
mov dword [0x006934cc], eax
call fcn.005e9bb0
mov eax, dword [0x0069351c]
add eax, 1
cmp dword [0x0069351c], eax
jne 0x617053
mov eax, dword [0x00697e84]
test eax, eax
jge 0x616ff5
call fcn.0040afc0
mov ecx, dword [0x006932ec]
test ecx, ecx
jge 0x617004
call fcn.0040afc0
mov edx, dword [0x00693548]
test edx, edx
jge 0x617013
call fcn.0040afc0
mov r8d, dword [0x00694284]
test r8d, r8d
jge 0x617024
call fcn.0040afc0
mov r9d, dword [0x00695880]
test r9d, r9d
jge 0x617035
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
nop
mov eax, dword [0x00698aec]
mov dword [0x00697e6c], eax
mov eax, dword [0x00698aec]
mov dword [0x00697e6c], eax
mov eax, dword [0x006968a8]
cmp eax, dword [0x0069742c]
je 0x617086
mov eax, dword [0x006968a8]
mov dword [0x0069742c], eax
mov eax, dword [0x00693534]
add eax, 1
cmp dword [0x00693534], eax
jne 0x6170d7
mov eax, dword [0x00696abc]
test eax, eax
jge 0x6170a6
call fcn.0040afc0
mov ecx, dword [0x0069812c]
test ecx, ecx
jge 0x6170b5
call fcn.0040afc0
mov edx, dword [0x00693294]
test edx, edx
jge 0x6170c4
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 [0x00698b30]
mov dword [0x006980f4], eax
mov byte [rbp + 0xabf], 0
lea rcx, [rbp + 0x90]
mov edx, 0xa
call fcn.004109c0
mov dword [0x006931f8], 0x306
mov eax, dword [0x006931f8]
sub eax, 0x196
mov dword [0x006933fc], eax
mov eax, dword [0x006962c8]
add eax, dword [0x00696ab4]
mov ecx, dword [0x00697490]
add ecx, dword [0x00698988]
cmp eax, ecx
jle 0x617139
call fcn.004096f0
mov eax, dword [0x0069352c]
add eax, 1
cmp dword [0x0069352c], eax
jne 0x61718a
mov eax, dword [0x00694288]
test eax, eax
jge 0x617159
call fcn.0040afc0
mov ecx, dword [0x00695b94]
test ecx, ecx
jge 0x617168
call fcn.0040afc0
mov edx, dword [0x00696168]
test edx, edx
jge 0x617177
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
lea rcx, [rbp + 0xb6]
mov edx, 0x800
xor r8, r8
call fcn.0040a9a0
mov rcx, qword [rbp + 0xb00]
lea rdx, [rbp + 0xb6]
mov r8d, 0x800
xor r9, r9
call qword [0x006a92b8]
mov dword [rbp + 0x9c], eax
cmp dword [rbp + 0x9c], 0
jle 0x617935
mov eax, dword [0x006962c8]
add eax, dword [0x00696ab4]
mov ecx, dword [0x00697490]
add ecx, dword [0x00698988]
cmp eax, ecx
jle 0x6171f1
call fcn.004096f0
mov eax, dword [0x00696a98]
cmp eax, dword [0x00697470]
je 0x61720b
mov eax, dword [0x00696a98]
mov dword [0x00697470], eax
mov eax, dword [0x006962c4]
add eax, dword [0x006965c4]
mov ecx, dword [0x00696cd0]
add ecx, dword [0x006978c8]
cmp eax, ecx
jle 0x617233
mov eax, dword [0x006978c8]
mov dword [0x006962c4], eax
mov eax, dword [0x006980e8]
mov dword [0x006974ac], eax
mov eax, dword [0x00696178]
add eax, dword [0x006965e8]
mov ecx, dword [0x00696e5c]
add ecx, dword [0x006978ec]
cmp eax, ecx
jle 0x617267
mov eax, dword [0x006978ec]
mov dword [0x00696178], eax
call fcn.005fd9c0
cmp eax, dword [0x00698b14]
jle 0x61727e
mov dword [0x00698b14], 0x3b
lea rcx, [rbp + 0x9bb]
mov edx, 0x104
xor r8, r8
call fcn.0040a9a0
movsxd rax, dword [rbp + 0x9c]
test rax, rax
jge 0x6172a4
call fcn.0040afc0
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0xb6]
lea rdx, [rbp + 0x9bb]
mov r8, qword [rbp + 0x88]
call fcn.004093d0
lea rcx, [rbp + 0x8b7]
mov edx, 0x104
xor r8, r8
call fcn.0040a9a0
mov byte [rbp + 0x8b7], 5
mov eax, dword [0x0069897c]
mov dword [0x006978c0], eax
mov eax, dword [0x00696cb8]
add eax, dword [0x006974d0]
mov ecx, dword [0x00696198]
add ecx, dword [0x006965ac]
cmp ecx, eax
jle 0x617315
mov ecx, dword [0x006974d0]
mov dword [0x00696198], ecx
mov ecx, dword [0x00696198]
add ecx, dword [0x006965ac]
cmp ecx, eax
jle 0x617331
mov eax, dword [0x006974d0]
mov dword [0x00696198], eax
mov eax, dword [0x00696cb0]
cmp eax, dword [0x006974c8]
je 0x61734b
mov eax, dword [0x00696cb0]
mov dword [0x006974c8], eax
mov eax, dword [0x00695c10]
mov dword [0x006958a4], eax
mov eax, dword [0x006933a0]
add eax, 1
cmp dword [0x006933a0], eax
jne 0x61737e
mov eax, dword [0x00697e7c]
test eax, eax
jge 0x617377
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x00698978]
mov dword [0x006978bc], eax
mov eax, dword [0x00698978]
mov dword [0x006978bc], eax
mov eax, dword [0x006965c4]
cmp eax, dword [0x00696cd0]
je 0x6173b0
mov eax, dword [0x006965c4]
mov dword [0x00696cd0], eax
mov byte [rbp + 0x8b9], 0
cmp byte [rbp + 0x9bb], 5
jne 0x6173c9
cmp byte [rbp + 0x9bd], 0
je 0x6173cd
xor eax, eax
jmp 0x6173cf
mov al, 1
test al, al
jne 0x61746f
mov byte [rbp + 0x8b8], 1
lea rcx, [rbp + 0x90]
call fcn.0040f200
mov ecx, 1
movsxd rcx, ecx
test rax, rax
je 0x617405
lea rdx, [rcx - 1]
mov r8d, dword [rax - 4]
cmp rdx, r8
jb 0x61740a
call fcn.0040afc0
lea rax, [rax + rcx*2 - 2]
mov qword [rbp + 0x80], rax
lea rcx, [rbp + 0x8b7]
mov rdx, qword [rbp + 0x80]
mov r8d, 0xa
call fcn.004093d0
mov eax, dword [0x006932e0]
add eax, 1
cmp dword [0x006932e0], eax
jne 0x617457
mov eax, dword [0x006974d8]
test eax, eax
jge 0x617450
call fcn.0040afc0
mov ecx, eax
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov rcx, qword [rbp + 0xb00]
mov rdx, qword [rbp + 0x90]
call fcn.00616190
jmp 0x617935
movzx rax, byte [rbp + 0x9bc]
sub al, 1
test al, al
jne 0x617883
lea rcx, [rbp + 0xad0]
mov edx, 0x10
xor r8, r8
call fcn.0040a9a0
mov word [rbp + 0xad0], 2
movzx rax, byte [rbp + 0x9be]
sub al, 1
test al, al
je 0x6174bc
sub al, 2
test al, al
jne 0x61767b
jmp 0x617526
movzx rax, byte [rbp + 0x9bf]
mov byte [rbp + 0xad4], al
movzx rax, byte [rbp + 0x9c0]
mov byte [rbp + 0xad5], al
movzx rax, byte [rbp + 0x9c1]
mov byte [rbp + 0xad6], al
movzx rax, byte [rbp + 0x9c2]
mov byte [rbp + 0xad7], al
movzx rax, byte [rbp + 0x9c3]
mov byte [rbp + 0x7f], al
movzx rax, byte [rbp + 0x9c4]
mov byte [rbp + 0x7e], al
movzx ax, byte [rbp + 0x7f]
movzx cx, byte [rbp + 0x7e]
shl ecx, 8
or ax, cx
mov word [rbp + 0xad2], ax
jmp 0x6176e6
movzx rax, byte [rbp + 0x9bf]
mov dword [rbp + 0xac], eax
lea rcx, [rbp + 0x38]
lea rdx, [rbp + 0x9bf]
mov r8d, pe_nt_image_headers64
xor r9, r9
call fcn.0040f620
lea rcx, [rbp + 0x40]
mov rdx, qword [rbp + 0x38]
mov r8d, 2
mov r9d, dword [rbp + 0xac]
call fcn.0040fc10
mov rcx, qword [rbp + 0x40]
call fcn.0040fbe0
mov rcx, rax
call qword [0x006a92c8]
mov qword [rbp + 0xa0], rax
cmp qword [rbp + 0xa0], 0
jne 0x6175f7
mov byte [rbp + 0x8b8], 1
lea rcx, [rbp + 0x90]
call fcn.0040f200
mov ecx, 1
movsxd rcx, ecx
test rax, rax
je 0x6175ba
lea rdx, [rcx - 1]
mov r8d, dword [rax - 4]
cmp rdx, r8
jb 0x6175bf
call fcn.0040afc0
lea rax, [rax + rcx*2 - 2]
mov qword [rbp + 0x70], rax
lea rcx, [rbp + 0x8b7]
mov rdx, qword [rbp + 0x70]
mov r8d, 0xa
call fcn.004093d0
mov rcx, qword [rbp + 0xb00]
mov rdx, qword [rbp + 0x90]
call fcn.00616190
jmp 0x617936
mov rax, qword [rbp + 0xa0]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov eax, dword [rax]
test eax, eax
jge 0x617610
call fcn.0040afc0
mov dword [rbp + 0xad4], eax
mov eax, dword [rbp + 0xac]
add eax, 1
cmp eax, 0xff
jbe 0x61762c
call fcn.0040afc0
movzx rax, al
movzx rax, byte [rax + rbp + 0x9bf]
mov byte [rbp + 0x6f], al
mov eax, dword [rbp + 0xac]
add eax, 2
cmp eax, 0xff
jbe 0x617652
call fcn.0040afc0
movzx rax, al
movzx rax, byte [rax + rbp + 0x9bf]
mov byte [rbp + 0x6e], al
movzx ax, byte [rbp + 0x6f]
movzx cx, byte [rbp + 0x6e]
shl ecx, 8
or ax, cx
mov word [rbp + 0xad2], ax
jmp 0x6176e6
mov byte [rbp + 0x8b8], 8
lea rcx, [rbp + 0x90]
call fcn.0040f200
mov ecx, 1
movsxd rcx, ecx
test rax, rax
je 0x6176a9
lea rdx, [rcx - 1]
mov r8d, dword [rax - 4]
cmp rdx, r8
jb 0x6176ae
call fcn.0040afc0
lea rax, [rax + rcx*2 - 2]
mov qword [rbp + 0x60], rax
lea rcx, [rbp + 0x8b7]
mov rdx, qword [rbp + 0x60]
mov r8d, 0xa
call fcn.004093d0
mov rcx, qword [rbp + 0xb00]
mov rdx, qword [rbp + 0x90]
call fcn.00616190
jmp 0x617936
mov rax, qword [rbp + 0xb08]
mov rcx, qword [rax]
lea rdx, [rbp + 0xad0]
mov r8d, 0x10
call qword [0x006a92e0]
cmp eax, 0xffffffff
jne 0x617784
mov byte [rbp + 0x8b8], 4
lea rcx, [rbp + 0x90]
call fcn.0040f200
mov ecx, 1
movsxd rcx, ecx
test rax, rax
je 0x617737
lea rdx, [rcx - 1]
mov r8d, dword [rax - 4]
cmp rdx, r8
jb 0x61773c
call fcn.0040afc0
lea rax, [rax + rcx*2 - 2]
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x8b7]
mov rdx, qword [rbp + 0x58]
mov r8d, 0xa
call fcn.004093d0
mov rcx, qword [rbp + 0xb00]
mov rdx, qword [rbp + 0x90]
call fcn.00616190
mov rax, qword [rbp + 0xb08]
mov rcx, qword [rax]
call qword [0x006a92c0]
jmp 0x617935
lea rcx, [rbp + 0xac0]
mov edx, 0x10
xor r8, r8
call fcn.0040a9a0
mov dword [rbp + 0xb0], 0x10
mov rax, qword [rbp + 0xb08]
mov rcx, qword [rax]
lea rdx, [rbp + 0xac0]
lea r8, [rbp + 0xb0]
call qword [0x006a9318]
mov byte [rbp + 0x8ba], 1
movzx rax, byte [rbp + 0xac4]
mov byte [rbp + 0x8bb], al
movzx rax, byte [rbp + 0xac5]
mov byte [rbp + 0x8bc], al
movzx rax, byte [rbp + 0xac6]
mov byte [rbp + 0x8bd], al
movzx rax, byte [rbp + 0xac7]
mov byte [rbp + 0x8be], al
movzx rax, word [rbp + 0xac2]
mov ecx, eax
and cx, 0xff
mov byte [rbp + 0x8bf], cl
movzx eax, ax
shr eax, 8
mov byte [rbp + 0x8c0], al
lea rcx, [rbp + 0xb6]
mov edx, 0x800
xor r8, r8
call fcn.0040a9a0
lea rcx, [rbp + 0x8b7]
lea rdx, [rbp + 0xb6]
mov r8d, 0xa
call fcn.004093d0
mov rcx, qword [rbp + 0xb00]
lea rdx, [rbp + 0xb6]
mov r8d, 0xa
xor r9, r9
call qword [0x006a92b0]
cmp eax, 0xffffffff
je 0x617935
mov byte [rbp + 0xabf], 1
jmp 0x617935
mov byte [rbp + 0x8b8], 7
lea rcx, [rbp + 0x90]
call fcn.0040f200
mov ecx, 1
movsxd rcx, ecx
test rax, rax
je 0x6178b1
lea rdx, [rcx - 1]
mov r8d, dword [rax - 4]
cmp rdx, r8
jb 0x6178b6
call fcn.0040afc0
lea rax, [rax + rcx*2 - 2]
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x8b7]
mov rdx, qword [rbp + 0x50]
mov r8d, 0xa
call fcn.004093d0
mov rcx, qword [rbp + 0xb00]
mov rdx, qword [rbp + 0x90]
call fcn.00616190
jmp 0x617935
nop
lea rcx, [rbp + 0x38]
mov edx, 2
call fcn.0040ea30
lea rcx, [rbp + 0x90]
call fcn.0040e920
movzx rax, byte [rbp + 0xabf]
lea rsp, [rbp + 0xae8]
pop rbx
pop rbp
ret