Function at 0x18000942c
Capabilities:
Get disk size

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x18002f528]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rsi, r8
mov qword [rsp + 0x60], rdx
mov r13, rcx
mov r15b, byte [rbp + 0xc8]
mov rdi, qword [r8 + 8]
sub rdi, qword [r8]
mov r9d, dword [0x180031de8]
lea ecx, [r9 + 2]
lea eax, [r9 + 1]
imul ecx, eax
imul ecx, r9d
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 0x17
jne 0x1800094d7
mov ecx, 4
call fcn.18000c278
mov rbx, rax
call fcn.18000cecc
mov dword [rbx], eax
mov dword [0x180031de8], eax
mov rcx, rbx
call fcn.18000c270
mov r9d, dword [0x180031de8]
xor r14d, r14d
test r15b, r15b
je 0x180009527
lea ecx, [r9 + 1]
imul ecx, r9d
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xf
sub ecx, edx
cmp ecx, 4
jne 0x180009520
mov edx, 0xa0
lea r8d, [rdx + 1]
lea rcx, str._d__d_n
call fcn.18000ce18
mov r9d, dword [0x180031de8]
mov eax, 0x18
jmp 0x18000952c
mov eax, 0x10
cmp rdi, rax
jae 0x180009538
xor al, al
jmp 0x1800097ef
test r15b, r15b
je 0x1800095ab
mov rcx, qword [rsi]
mov eax, dword [rcx]
sub eax, dword [rcx + 0x10]
add eax, 0xffffffe8
test eax, 0xfffffffb
mov eax, 0x66666667
je 0x180009584
mov qword [rsi + 8], rcx
imul r9d, r9d
imul r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub r9d, eax
cmp r9d, 0x12
jne 0x180009531
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
jmp 0x180009531
lea ecx, [r9 + 1]
imul ecx, r9d
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub ecx, eax
cmp ecx, 3
jne 0x1800095ab
dec dword [0x180031ffc]
mov rcx, qword [rsi]
mov ebx, dword [rcx]
mov cl, r15b
neg cl
sbb eax, eax
and eax, 0x18
mov dword [rsp + 0x40], eax
lea r12d, [rax + 0x10]
add r12d, ebx
lea r8d, [r9 + 2]
lea ecx, [r9 + 1]
imul r8d, ecx
imul r8d, r9d
mov eax, 0x2aaaaaab
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub r8d, eax
cmp r8d, 4
jne 0x180009636
mov eax, 0x51eb851f
imul r9d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 0x64
sub r9d, edx
add r9d, 0x63
movsxd rcx, r9d
mov eax, r8d
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.18000bb8c
mov rcx, rax
call fcn.18000cec4
test r15b, r15b
cmovne r12d, ebx
mov edi, r12d
mov rax, qword [rsi + 8]
sub rax, qword [rsi]
cmp rax, rdi
jb 0x180009531
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r14
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.1800039ac
nop
mov r8d, edi
mov rdx, qword [rsi]
mov r14, qword [rsp + 0x48]
mov rcx, r14
call fcn.18000bbf0
mov rbx, qword [rsi]
lea rdx, [rbx + r12]
cmp rbx, rbx
jne 0x180009697
cmp rdx, qword [rsi + 8]
jne 0x180009697
mov qword [rsi + 8], rbx
jmp 0x1800096b6
cmp rbx, rdx
je 0x1800096b6
mov rdi, qword [rsi + 8]
sub rdi, rdx
mov r8, rdi
mov rcx, rbx
call fcn.18000bbf0
lea rax, [rdi + rbx]
mov qword [rsi + 8], rax
test r15b, r15b
je 0x1800096cb
mov eax, dword [rsp + 0x40]
add eax, 0x10
cmp r12d, eax
jb 0x1800097ce
mov r8b, r15b
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x70]
call fcn.18000a0d0
nop
mov r8d, dword [0x180031de8]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 0xf
jne 0x180009725
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov r8d, dword [0x180031de8]
mov rbx, qword [r13 + 8]
cmp rbx, qword [r13 + 0x10]
je 0x1800097bf
mov rsi, qword [rsp + 0x60]
xor r14d, r14d
mov rdi, qword [rbx]
imul r8d, r8d
mov eax, 0x66666667
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub r8d, eax
cmp r8d, 2
jne 0x18000978c
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov rax, qword [rdi]
mov byte [rsp + 0x28], r15b
mov byte [rsp + 0x20], r14b
lea r9, [rsp + 0x70]
mov r8, rsi
mov rdx, r13
mov rcx, rdi
call qword [rax]
add rbx, 8
cmp rbx, qword [r13 + 0x10]
je 0x1800097bf
mov r8d, dword [0x180031de8]
jmp 0x18000973b
lea rcx, [rsp + 0x70]
call fcn.180001d08
mov r14, qword [rsp + 0x48]
test r14, r14
je 0x1800097ed
mov rcx, r14
call fcn.18000c270
and qword [rsp + 0x48], 0
and qword [rsp + 0x50], 0
and qword [rsp + 0x58], 0
mov al, 1
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.18000bbc0
mov rbx, qword [rsp + 0x1b8]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret