Function at 0x5aa830
Capabilities:
Get disk size

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov rbp, rsp
mov qword [rbp + 0x88], 0
mov qword [rbp + 0xa0], 0
mov qword [rbp + 0x160], 0
mov qword [rbp + 0xe0], 0
mov qword [rbp + 0xa8], rbp
mov rsi, qword [rbp + 0x1e8]
lea rdi, [rbp + 0x108]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
mov rsi, qword [rbp + 0x1f0]
lea rdi, [rbp + 0xf8]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
mov rsi, qword [rbp + 0x1f8]
lea rdi, [rbp + 0x118]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
mov qword [rbp + 0x1a0], rcx
mov qword [rbp + 0x1a8], rdx
mov qword [rbp + 0x1b0], r8
mov byte [rbp + 0x1b8], r9b
mov rcx, qword [rbp + 0x1a8]
call fcn.0040e210
mov rcx, qword [rbp + 0x1c0]
call fcn.0040e210
nop
mov rcx, qword [rbp + 0x1a0]
call fcn.005abd10
mov rcx, qword [rbp + 0x1a0]
mov dl, 1
call fcn.005ab780
mov rcx, qword [rbp + 0x1a0]
call fcn.005ab8b0
mov byte [rbp + 0x157], 0
mov rax, qword [rbp + 0x1a0]
movzx rax, byte [rax + 0x7e]
mov byte [rbp + 0x12f], al
mov rax, qword [rbp + 0x1a0]
movzx rax, byte [rax + 0xc5]
mov byte [rbp + 0x12e], al
mov rcx, qword [rbp + 0x1b0]
call fcn.0040e080
cmp qword [rbp + 0x108], 0
je 0x5aa95a
mov rcx, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x1a0]
call qword [rbp + 0x108]
lea rcx, [rbp + 0xe0]
mov rdx, qword [rbp + 0x1a8]
call fcn.0042d510
lea rcx, [rbp + 0xe0]
lea rdx, [0x005ab3f0]
call fcn.00410220
mov rcx, qword [rbp + 0xe0]
call fcn.0040feb0
mov rcx, rax
lea rdx, [rbp + 0xd8]
lea r8, [rbp + 0xd0]
lea r9, [rbp + 0xc8]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov rax, qword [rbp + 0xd8]
mov qword [rbp + 0xc0], rax
mov rcx, qword [0x0045e038]
mov dl, 1
mov rax, qword [rbp + 0x1a0]
mov r8, qword [rax + 0xa8]
mov r9w, 0x40
call fcn.0046ee50
mov qword [rbp + 0x168], rax
nop
mov rcx, qword [rbp + 0x168]
mov rax, qword [rbp + 0x168]
mov rax, qword [rax]
call qword [rax]
cmp rax, qword [rbp + 0xc0]
jle 0x5aaa20
mov rcx, qword [0x004f3fc0]
mov dl, 1
mov r8d, 0x4f4f
lea r9, [0x005ab400]
call fcn.004f40e0
mov rcx, rax
call fcn.0040d260
nop
mov rcx, qword [rbp + 0x168]
call fcn.0040ae10
mov rcx, qword [0x00593b20]
mov dl, 1
xor r8, r8
call fcn.005a8f20
mov qword [rbp + 0x130], rax
nop
mov rcx, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x1a8]
call fcn.005aa310
lea rcx, [rbp + 0xa0]
lea rdx, [0x005ab4c8]
call fcn.005ea640
mov rcx, qword [rbp + 0x130]
mov rdx, qword [rbp + 0xa0]
call fcn.005aa250
mov rcx, qword [rbp + 0x130]
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rax + 0x98]
call fcn.005ab6e0
mov rcx, qword [rbp + 0x130]
add rcx, 0xb0
mov rdx, qword [rbp + 0x1c0]
call fcn.0040e6f0
mov rax, qword [rbp + 0x130]
movzx rcx, byte [rbp + 0x1c8]
mov byte [rax + 0xb8], cl
mov rax, qword [rbp + 0x130]
mov ecx, dword [rbp + 0x1d0]
mov dword [rax + 0xbc], ecx
mov rax, qword [rbp + 0x130]
mov ecx, dword [rbp + 0x1d8]
mov dword [rax + 0xc0], ecx
mov rax, qword [rbp + 0x130]
mov ecx, dword [rbp + 0x1e0]
mov dword [rax + 0xc8], ecx
nop
mov rcx, qword [rbp + 0x130]
call fcn.005a98d0
mov rcx, qword [rbp + 0x130]
call fcn.005a91a0
jmp 0x5aabed
mov rax, qword [rbp + 0x1a0]
mov byte [rax + 0x7e], 1
mov rax, qword [rbp + 0x1a0]
mov byte [rax + 0xc5], 1
mov rcx, qword [rbp + 0x1a0]
call fcn.005a91a0
mov rax, qword [rbp + 0x1a0]
movzx rcx, byte [rbp + 0x12e]
mov byte [rax + 0xc5], cl
mov rax, qword [rbp + 0x1a0]
cmp qword [rax + 0x88], 0
je 0x5aac51
mov rax, qword [rbp + 0x1a0]
mov rax, qword [rax + 0x88]
mov rcx, rax
mov dl, 1
mov rbx, qword [rax]
call qword [rbx + 0x18]
mov byte [rbp + 0xeb], 1
mov rcx, qword [0x0045caf0]
mov dl, 1
call fcn.0046e750
mov qword [rbp + 0x138], rax
nop
mov rcx, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x138]
call fcn.005a9fa0
mov rcx, qword [rbp + 0x138]
mov rax, qword [rbp + 0x138]
mov rax, qword [rax]
call qword [rax + 0x28]
xor rcx, rcx
sub eax, 1
jno 0x5aaca2
call fcn.0040abd0
mov dword [rbp + 0x64], eax
mov dword [rbp + 0xf4], ecx
mov eax, dword [rbp + 0x64]
cmp dword [rbp + 0xf4], eax
jg 0x5aaff8
mov eax, dword [rbp + 0x64]
add eax, 1
mov dword [rbp + 0x64], eax
mov rcx, qword [0x00592588]
mov dl, 1
xor r8, r8
call fcn.005a1f00
mov qword [rbp + 0x148], rax
mov rcx, qword [rbp + 0x138]
lea rdx, [rbp + 0x88]
mov r8d, dword [rbp + 0xf4]
mov rax, qword [rbp + 0x138]
mov rbx, qword [rax]
call qword [rbx + 0x18]
mov rcx, qword [rbp + 0x148]
mov rdx, qword [rbp + 0x88]
call fcn.0059fd40
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rax + 0xa0]
call fcn.00597840
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rax + 0x98]
call fcn.00597990
nop
nop
cmp byte [rbp + 0x1b8], 0
je 0x5aad5b
mov rcx, qword [rbp + 0x148]
call fcn.005a5ad0
mov rcx, qword [rbp + 0x148]
call fcn.004eb3d0
mov rcx, qword [rbp + 0x148]
call fcn.004eb3f0
mov rcx, qword [rbp + 0x138]
mov rax, qword [rbp + 0x138]
mov rax, qword [rax]
call qword [rax + 0x28]
mov ecx, eax
mov eax, dword [rbp + 0xf4]
imul eax, eax, 0x64
jno 0x5aad99
call fcn.0040abd0
cdq
idiv ecx
mov dword [rbp + 0xf0], eax
mov rcx, qword [rbp + 0x138]
mov rax, qword [rbp + 0x138]
mov rax, qword [rax]
call qword [rax + 0x28]
mov ecx, eax
mov eax, dword [rbp + 0xf4]
add eax, 1
jno 0x5aadc8
call fcn.0040abd0
imul eax, eax, 0x64
jno 0x5aadd2
call fcn.0040abd0
cdq
idiv ecx
mov dword [rbp + 0xec], eax
mov rax, qword [rbp + 0x148]
lea rdi, [rax + 0x3e8]
lea rsi, [rbp + 0xf8]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
mov rax, qword [rbp + 0x148]
add rax, 0x3d8
mov rcx, qword [rbp + 0x1a0]
mov qword [rax + 8], rcx
lea rcx, [0x005abd90]
mov qword [rax], rcx
mov rax, qword [rbp + 0x148]
add rax, 0x3f8
mov rcx, qword [rbp + 0x1a0]
mov qword [rax + 8], rcx
lea rcx, [0x005abd90]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x148]
mov rdx, qword [rax + 0x3a8]
mov r8, qword [rbp + 0x1b0]
lea r9, [rbp + 0xeb]
mov rax, qword [rbp + 0x130]
mov rax, qword [rax + 0xa8]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x130]
mov rax, qword [rax + 0xb0]
mov qword [rsp + 0x28], rax
movzx rax, byte [rbp + 0x1b8]
mov byte [rsp + 0x30], al
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x40], 1
mov eax, dword [rbp + 0xf0]
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0xec]
mov dword [rsp + 0x50], eax
call fcn.005a3690
cmp byte [rbp + 0xeb], 0
jne 0x5aafd5
mov byte [rbp + 0x157], 0
xor rcx, rcx
mov rdx, qword [rbp + 0xa8]
call fcn.005ab1c0
xor rcx, rcx
mov rdx, qword [rbp + 0xa8]
call fcn.005ab1f0
xor rcx, rcx
mov rdx, qword [rbp + 0xa8]
call fcn.005ab280
jmp 0x5ab0fa
nop
mov rcx, qword [rbp + 0x148]
call fcn.0040ae10
add dword [rbp + 0xf4], 1
mov eax, dword [rbp + 0x64]
cmp dword [rbp + 0xf4], eax
jne 0x5aacc3
nop
nop
mov rcx, qword [rbp + 0x138]
call fcn.0040ae10
mov rax, qword [rbp + 0x1a0]
cmp qword [rax + 0x88], 0
je 0x5ab031
mov rax, qword [rbp + 0x1a0]
mov rax, qword [rax + 0x88]
mov rcx, rax
xor rdx, rdx
mov rbx, qword [rax]
call qword [rbx + 0x18]
mov rcx, qword [rbp + 0x1a0]
call fcn.005a9840
cmp qword [rbp + 0xf8], 0
je 0x5ab069
mov rcx, qword [rbp + 0x100]
mov rdx, qword [rbp + 0x1a0]
mov r8d, 0x64
lea r9, [rbp + 0xeb]
call qword [rbp + 0xf8]
mov rcx, qword [rbp + 0x130]
call fcn.005a9840
mov rcx, qword [rbp + 0x130]
call fcn.005a9a30
cmp byte [rbp + 0x1b8], 0
je 0x5ab093
mov byte [rbp + 0x157], 1
jmp 0x5ab0a7
mov rax, qword [rbp + 0x1b0]
cmp qword [rax], 0
sete al
mov byte [rbp + 0x157], al
nop
mov rcx, qword [rbp + 0x130]
call fcn.0040ae10
mov rax, qword [rbp + 0x1a0]
movzx rcx, byte [rbp + 0x12f]
mov byte [rax + 0x7e], cl
mov rax, qword [rbp + 0x1a0]
movzx rcx, byte [rbp + 0x12e]
mov byte [rax + 0xc5], cl
cmp qword [rbp + 0x118], 0
je 0x5ab0f9
mov rcx, qword [rbp + 0x120]
mov rdx, qword [rbp + 0x1a0]
call qword [rbp + 0x118]
nop
lea rcx, [rbp + 0x88]
call fcn.0040e080
lea rcx, [rbp + 0xa0]
call fcn.0040e080
lea rcx, [rbp + 0xe0]
call fcn.0040e080
lea rcx, [rbp + 0x160]
call fcn.0040e080
lea rcx, [rbp + 0x1a8]
call fcn.0040e080
lea rcx, [rbp + 0x1c0]
call fcn.0040e080
movzx rax, byte [rbp + 0x157]
lea rsp, [rbp + 0x178]
pop rbx
pop rsi
pop rdi
pop rbp
ret